{"version":3,"sources":["app.js","main-service.js","main_controller.js","components/calendar.js","helpers/authorization_interceptor.js","directives/shared/confirmmodal.js","directives/shared/datepicker.js","directives/shared/externalurl.js","directives/shared/itemdelete.js","directives/shared/loading_overlay.js","directives/shared/modal.js","directives/shared/repeat.done.js","directives/shared/semantic-adaptors.js","directives/shared/topmenu.js","components/payment/payment-form.component.js","components/payment/payment-list-controller.js","components/payment/payment.routes.js","controllers/daily/daily-report-create.js","controllers/daily/daily-report.js","controllers/audit/adjustment-pivot.js","controllers/audit/cash-management-controller.js","controllers/audit/cash-revenue-controller.js","controllers/audit/cash-variance-controller.js","controllers/audit/daily-collection-controller.js","controllers/audit/revenue-pivot-controller.js","controllers/home/forgot-password.js","controllers/home/home-controller.js","controllers/incident/create-incident-controller.js","controllers/incident/incident-controller.js","controllers/inventory/ticket-history-controller.js","controllers/inventory/ticket-inventory-controller.js","controllers/inventory/ticket-inventory-issue-controller.js","controllers/inventory/ticket-inventory-list-controller.js","controllers/inventory/ticket-transfer-controller.js","controllers/messages/messages-ctrl.js","controllers/report/audit-report-controller.js","controllers/report/cash-balance-controller.js","controllers/report/employee-report-controller.js","controllers/report/location_report_controller.js","controllers/report/report-controller.js","controllers/report/ticket-report-controller.js","controllers/payment/payment-category-controller.js","controllers/payment/payment-category-list-controller.js","controllers/payment/project-controller.js","controllers/payment/project-history-controller.js","controllers/payment/project-list-controller.js","controllers/schedule/employee-preferences.js","controllers/schedule/my-schedule-controller.js","controllers/schedule/schedule-controllers.js","controllers/schedule/schedule-view-controller.js","controllers/shared/crud_controllers.js","controllers/shared/header_controller.js","controllers/user/users_controller.js","models/payment/payroll-line-item.js","services/admin/adjustment-type-service.js","services/admin/expense-type-service.js","services/admin/location-service.js","services/admin/location-type-service.js","services/admin/payment-type-service.js","services/admin/role-service.js","services/admin/service-type-service.js","services/admin/shift-service.js","services/admin/ticket-type-service.js","services/admin/user-service.js","services/daily/daily-report-service.js","services/incident/incident-service.js","services/incident/incident-type-service.js","services/inventory/issued-ticket-service.js","services/inventory/ticket-inventory-servcie.js","services/shared/crud-helper.js","services/shared/current-user-services.js","services/shared/report-services.js","services/shared/service-helper-service.js","services/schedule/schedule-service.js","services/payments/payment-category-service.js","services/payments/payment-service.js","services/payments/project-service.js","components/admin/locations/location-day.component.js","components/admin/locations/location-form.component.js","components/admin/locations/location-list.component.js","components/admin/locations/location.routes.js","controllers/admin/user/location-type-controller.js","controllers/admin/user/profile-controller.js","controllers/admin/user/role-controller.js","controllers/admin/user/user-controller.js","controllers/admin/user/user-day-controller.js","controllers/admin/user/user-list-controller.js","controllers/admin/others/adjustment-type-list-controller.js","controllers/admin/others/configuration-list-controller.js","controllers/admin/others/expense-type-controller.js","controllers/admin/others/incident-type-list-controller.js","controllers/admin/others/location-type-list-controller.js","controllers/admin/others/payment-type-list-controller.js","controllers/admin/others/role-list-controller.js","controllers/admin/others/service-controller.js","controllers/admin/others/service-list-controller.js","controllers/admin/others/shift-controller.js","controllers/admin/others/shift-list-controller.js","controllers/admin/others/ticket-type-list-controller.js","controllers/schedule/models/employee-schedule-model.js","controllers/schedule/models/location-schedule-model.js"],"names":["window","app","angular","module","$httpProvider","$locationProvider","$qProvider","$stateProvider","redirectTo","templateUrl","url","controller","$urlRouterProvider","defaults","useXDomain","withCredentials","headers","common","html5Mode","errorOnUnhandledRejections","state","location","replace","getLocations","resolve","locations","locationSvc","otherwise","interceptors","scrollTop","isArray","forEach","keys","props","prop","item","itemMatches","push","$","animate","hasRole","role","roles","undefined","items","i","length","text","toLowerCase","toString","indexOf","out","utilities","serviceHelper","AuthorizationToken","Account","$cookies","localStorageService","isUndefined","Authorization","$http","get","buildFormData","authenticated","formData","userLogin","Password","Email","password","grant_type","hasOwnProperty","dataString","slice","data","userName","token","set","username","ChangePassword","change_password","userRegistration","registerUser","clearAll","remove","isAuthed","$scope","isAuthorized","$location","mainSvc","$window","authorized","login","$promise","then","errorResponse","loading","errorMessage","status","errorMessager","Message","checkStatus","UserRole","Key","$emit","href","logOff","Logout","logOut","directive","restrict","transclude","changed","disabled","ngModel","controllerAs","bindToController","template","link","scope","element","attrs","$setViewValue","$modelValue","newValue","calendar","log","console","vm","includes","moment","Date","format","initialDate","date","type","maxDate","onChange","val","$apply","mode","startMode","require","checkbox","$rootScope","$q","request","config","responseError","rejection","$broadcast","reject","Array","prototype","sum","total","_len","this","sum2","prop2","parseFloat","contains","obj","toLocalDate","d","utc","local","toDate","approve","deny","id","closable","message","ngModelCtrl","closeModal","modal","on","e","datepicker","dPicker","webUrlPattern","attributes","cstExternalUrl","isWebUrl","test","css","open","ev","confirm","required","cstModal","modalId","$last","repeatDone","dropdown","inline","popup","hoverable","position","delay","show","hide","sticky","menuItems","find","parent","removeClass","addClass","$on","isAuthenticated","PaymentCtrl","$filter","$stateParams","paymentSvc","paymentCategorySvc","projectSvc","userSvc","ProjectPayments","PaymentDate","initiateObjects","PayrollPayments","PayrollLineItem","Type","extend","ExpenseCategoryId","ready","AddNewLineItem","save","Id","add","edit","path","onTypeChanged","clear","projects","filter","p","OnCategoryChanged","value","_","findWhere","paymentCategories","Number","getList","employees","isDefined","GeneratePayroll","disableForm","Status","InitiateNewPayroll","HoursWorked","Remarks","init","component","bindings","$inject","PaymentsCtrl","page","showConfirmedPayments","hasPermission","includeConfirmed","pageNumber","total_payments","TotalCount","List","pages","id_to_delete","OpenModalForDeleteDraftPayment","show_are_you_sure","DeleteDraftPayment","CancelDialog","delete_error_message","deleteItem","messsage","ticketTypeSvc","adjustmentTypeSvc","expenseTypeSvc","paymentTypeSvc","dailyReportSvc","current","getItem","viewOnly","history","back","deleteTask","deleteFullReport","LocationId","FilterObject","parseInt","arr","TicketTypes","Employees","PaymentTypes","ExpenseTypes","AdjustmentTypes","val1","val2","TicketBeginningBalance","DailyTickets","recipt","EndTicketNumber","StartTicketNumber","isNumber","RemainingTickets","ClosingTicketNumber","IsTicketInfoValid","IsStepOneValid","start","end","OnTicketInfoChanged","TotalIssuedTicket","OnSales","warn","TotalCashSales","TotalAdjustedTickets","DailyAdjustments","TotalSoldTicket","DailySales","TotalSales","map","TicketCount","Rate","b","PaymentTypeId","reduce","a","onFileChanged","file","SelectFile","event","target","files","FileReader","reader","onload","result","uploadDepositSlip","Image","OriginalFileName","name","readAsDataURL","_step","_iterator","_createForOfIteratorHelper","DailyExpenses","expense","Quantity","UnitPrice","err","f","TotalExpenses","OnBeginningTicketNumberChanged","finishedWizard","processing","error","statusText","postWizard","index","ticketToDelete","ticket","show_remove_ticket_modal","RemoveTicketConfirmed","removeTicket","ReportId","splice","indexToDelete","OnLocationChanged","currentUserService","options","getListByLocation","MarkReady","create","period","Continue","OpenCustomDate","creatingCustomReport","serviceHelperSvc","Location","query","lastDate","ChangeParams","where","reportsForDate","PaymentType","paymentTypes","pivot","startDate","endDate","locationId","prices","rt","pivotMyData","pluck","uniq","dates","ReportDate","pt","Supervisor","SupervisorName","pts","jQuery","param","rows","$anchorScroll","isReady","$watch","ChangeLastDate","header","Audits","ConfirmDay","IsSaving","SaveAudit","day","IsBeingEdited","IsCorrected","post","IsAudited","CashSales","OldValue","ShowDailyReport","StartTime","EndTime","show_daily_report_modal","r","search","RevenueReport","apiurl","setTimeout","VarianceReport","ExportExcel","DailyCollectionReport","forDate","RevenuePivot","sort","flatMap","Name","response","form","isValid","forgotPassword","Phone","summary","TopLocationByIncome","income","topLocationsChart","Amount","color","label","incomeObj","caption","SameDayIncomeTrend","stringDate","sameDayIncome","subtract","PaymentTypeSummary","revenue","Revenue","index2","paymentTypeSummaryChart","chart","theme","slantlabels","enablemultislicing","showpercentvalues","showpercentintooltip","plottooltext","showPercentInTooltip","decimals","useDataPlotColorForLabels","view","ViewSummary","home_loaded","sidebar","dimPage","service","incidentTypeSvc","OnImageChanged","NewImage","Images","types","saving","ID","close","showImage","img","CurrentImage","show_modal","imagesLoaded","EventDate","loadWithImage","defer","itemWithImages","getWithImages","deferred","showClosed","filteredList","searchIncidents","incident","LocationName","CustomerFirstName","CustomerLastName","ClosedDate","range","humanizeLength","twix","DateDiff","deleteIssue","list","TicketHistory","ConfirmPullBack","issue","currentIssue","CloseModal","hasZeroBalance","lastEntry","ClosingNumber","ShowIssuedTicketStatus","show_issued_ticket_history_dialog","issue_history_ready","IssuedHistory","DeletedTickets","IssuedTicketHistory","DeletedTicketHistory","filterZeroOperations","showZero","Tickets","PullIssueBack","issuedTicketId","show_ticket_pull_back_modal","ticketTypes","getActiveList","svc","isEdit","EndNumber","StartNumber","updateReceiveDetail","Warning","receiveDetail","users","getReceiveDetail","getActiveLocations","issuedTicketSvc","inventory","IssuedTicketId","TicketTypeId","total_tickets","Remaining","IssuedTicket","ticketType","transfer","update","roleSvc","confirmation","getByRole","toggleSelected","IsSelected","toggle","sendMessage","PhoneNumber","Text","Numbers","send","notify","ParamChanged","UnAuditedReports","s","toMonth","monthNumber","monthNames","CashReconciliationSummary","subtotal","TransactionType","convertDate","employee","OnEmployeeChanged","EmployeeRecords","locationReportSvc","sendEmail","alert","detail","values","ticks","rev","chartdata","key","loc","MinTicketCount","title","subtitle","ranges","measures","RemainingTicketCount","filterChanged","ShowNonReporting","filtered_locations","StartedReporting","xaxisticks","time","xAxisTickFormat_Date_Format","d3","showInactiveLocations","showInactiveTicketTypes","ApplyFilters","row","LocationIsActive","TicketTypeIsActive","StaleTicketList","ShowDailyReportModal","Roasters","bindCrud","getHistory","balance","hist","ExpenseCategory","IsPayout","Balance","project","ApplyFilter","ShowAll","fullData","IsActive","UserList","scheduleService","prows","initDatesForDays","days","initAllDates","Day1","Day2","Day3","Day4","Day5","Day6","Day7","defaultLocationStartTime","hour","GetDateObject","clearMessage","weeks","Weeks","LoadWeek","ByEmployee","selected","week","fasle","CreateOpen","_date","WeekOf","Schedule","weekly","locationIndex","Finalizer","finalize","Save","DeleteList","delete_list","Details","OnDragStart","emp","dLocation","dragged_employee","dragged_day","dragged_index","OnDropSuccess","field","OnDragSuccess","isNull","WorkingDays","copy","workingDayDetail","WorkingDayDetails","WorkingDayId","locationWorkingTime","parse","Dates","norepeat","emps","locs","OnRemoveDropSuccess","WeeklyScheduleId","locSchedule","dayIndex","locationDayPreference","locationStartTime","employeePreferanceForDate","employeeStartTime","employeeStartText","locationDaySetting","StartTimeValid","locStartTimeString","employeeWorkingDay","employeeStartTimeString","currentStartTime","assignments","MyLocation","Selected","weeklyScheduleId","WorkDay","dailySchedules","groupBy","schedule","EmployeeScheduleModel","Repeats","StartTimeTooltip","ValidateAllAssignments","MyEmployee","userId","Employee","matchmedia","isActive","UserName","toggleMenu","isComputer","width","document","is","deleteUser","responseHeaders","loadUsers","getUsers","pay","subTotalBeforeDeductions","due","Deductions","actualDue","factory","$resource","Service","AdjustmentType","updation","ExpenseType","LocationList","addLocation","editLocation","ActiveLocationList","geScheduledLocations","getLocationsFull","deleteLocation","getScheduledLocations","ShedulableLocationList","LocationType","paymentType","Role","ServiceType","Shift","TicketType","ActiveTicketTypeList","User","UserListByRole","getActiveUsers","Daily","DailySubmit","put","DailyReport","DailyReportDelete","DailyCreate","ShiftId","DailyTicketRemove","params","upload","UploadDepositSlip","Incident","IncidentType","TicketInventory","ReceiveDetail","CurrentUser","LocationReport","buildUrl","resourceUrl","baseUrl","requestToken","method","Content-Type","register","LocationDay","UserDay","delete","DeleteIncident","IncidentImages","async","AdjustmentPivot","EmployeeReport","ActiveUsers","Accept","CustomDailyReport","DailyReportList","PaymentCategory","Project","ProjectHistory","Payment","DReport","ConfigurationSettings","Locations","LocationDayCtrl","getLocation","Shifts","shift","StartHour","editDays","info","LocationCtrl","locationTypeSvc","StartDate","LocationsCtrl","loadLocations","master_locations","FilterLocations","LocationTypeId","l","show_change_password","ExceptionMessage","confirmPassword","user","notfy","showAll","searchUser","allList","RoleKeys","LastName","FirstName","n","done","SelectiveGroup","Roles","serviceTypeSvc","shiftSvc","initDatesForWorkingHours","LocationScheduleModel"],"mappings":"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","file":"ngscripts.js","sourcesContent":["window.app = angular.module('ustreet-app',\n [\n 'ngSanitize',\n 'ui.router',\n 'ngCookies',\n 'ngResource',\n 'ngAnimate',\n 'angularify.semantic.popup',\n 'angularify.semantic.checkbox',\n 'angularify.semantic.modal',\n 'ngStorage',\n 'angularify.semantic.dropdown',\n 'smart-table',\n 'ng-fusioncharts',\n 'ngDraggable',\n 'mgo-angular-wizard',\n 'LocalStorageModule',\n // 'mgcrea.ngStrap',\n 'matchmedia-ng',\n '720kb.datepicker'\n ]);\n\nangular\n .module('ustreet-app')\n .config(['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider', '$qProvider',\n function ($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider, $qProvider) {\n $httpProvider.defaults.useXDomain = true;\n $httpProvider.defaults.withCredentials = false;\n delete $httpProvider.defaults.headers.common['X-Requested-With'];\n $httpProvider.defaults.useXDomain = false;\n $locationProvider.html5Mode(false);\n $qProvider.errorOnUnhandledRejections(false);\n\n $stateProvider\n .state('login', {\n url: '/Login',\n redirectTo: function () {\n window.location.replace('/login.html#/');\n }\n });\n $stateProvider.state('/Home', {\n url: '/Home',\n templateUrl: '/Scripts/app/views/home/home.html',\n controller: 'HomeCtrl'\n });\n\n $stateProvider.state('/Forgot/Password', {\n url: '/Forgot/Password',\n templateUrl: '/Scripts/app/views/home/Forgot.html',\n controller: 'ForgotCtrl'\n });\n\n $stateProvider.state('/About', {\n url: '/About',\n templateUrl: '/Scripts/app/views/about/About.html'\n });\n $stateProvider.state('/Resources', {\n url: '/Resources',\n templateUrl: '/Scripts/app/views/resources/Resources.html',\n controller: 'ResourcesCtrl'\n });\n $stateProvider.state('/Resources/Add', {\n url: '/Resources/Add',\n templateUrl: '/Scripts/app/views/resources/add.html',\n controller: 'ResourceCtrl'\n });\n $stateProvider.state('/Resources/Edit', {\n url: '/Resources/Edit/{resourceId}',\n templateUrl: '/Scripts/app/views/resources/edit.html',\n controller: 'ResourceEditCtrl'\n });\n $stateProvider.state('/Resources/Details', {\n url: '/Resources/{resourceId}',\n templateUrl: '/Scripts/app/views/resources/details.html',\n controller: 'ResourceCtrl'\n });\n $stateProvider.state('/Activities/Add', {\n url: '/Activities/Add',\n templateUrl: '/Scripts/app/views/activities/add.html',\n controller: 'ActivityAddCtrl'\n });\n\n $stateProvider.state('/Profile', {\n url: '/Profile',\n templateUrl: '/Scripts/app/views/home/profile.html',\n controller: 'ProfileCtrl'\n });\n $stateProvider.state('/Error', {\n url: '/Error',\n templateUrl: '/Scripts/app/views/shared/error.html'\n });\n $stateProvider.state('/Construction', {\n url: '/Construction',\n templateUrl: '/Scripts/app/views/shared/under-construction.html'\n });\n $stateProvider.state('/Inventory', {\n url: '/Inventory',\n templateUrl: '/Scripts/app/views/inventory/index.html',\n controller: 'TicketInventoryListCtrl'\n });\n $stateProvider.state('/Inventory/Add', {\n url: '/Inventory/Add',\n templateUrl: '/Scripts/app/views/inventory/tickets/add.html',\n controller: 'TicketInventoryCtrl'\n });\n $stateProvider.state('/Inventory/Edit', {\n url: '/Inventory/Edit/:id',\n templateUrl: '/Scripts/app/views/inventory/tickets/add.html',\n controller: 'TicketInventoryCtrl'\n });\n $stateProvider.state('/Inventory/Issue', {\n url: '/Inventory/Issue/:id',\n templateUrl: '/Scripts/app/views/inventory/tickets/issue.html',\n controller: 'TicketInventoryIssueCtrl'\n });\n $stateProvider.state('/Inventory/History', {\n url: '/Inventory/History/:id',\n templateUrl: '/Scripts/app/views/inventory/tickets/history.html',\n controller: 'TicketHistoryCtrl'\n });\n $stateProvider.state('/Inventory/Transfer', {\n url: '/Inventory/Transfer/:id',\n templateUrl: '/Scripts/app/views/inventory/tickets/transfer.html',\n controller: 'TicketTransferCtrl'\n });\n $stateProvider.state('/Daily', {\n url: '/Daily',\n templateUrl: '/Scripts/app/views/daily/index.html',\n controller: 'DailyReportCtrl',\n resolve: {\n 'locations': ['locationSvc', function (locationSvc) {\n return locationSvc.getLocations();\n }]\n }\n });\n $stateProvider.state('/MyScore', {\n url: '/MyScore',\n templateUrl: '/Scripts/app/views/score/index.html',\n controller: 'MyScoreCtrl'\n });\n $stateProvider.state('Daily.Detail', {\n url: '/Daily/{id}',\n templateUrl: '/Scripts/app/views/daily/index.html',\n controller: 'DailyReportCtrl',\n resolve: {\n 'locations': ['locationSvc', function (locationSvc) {\n return locationSvc.getLocations();\n }]\n }\n });\n $stateProvider.state('/Daily/Wizard', {\n url: '/Daily/Wizard/{id}',\n templateUrl: '/Scripts/app/views/daily/wizard.html',\n controller: 'DailyReportCreateCtrl'\n });\n $stateProvider.state('/Daily/View', {\n url: '/Daily/View/:id',\n templateUrl: '/Scripts/app/views/daily/view.html',\n controller: 'DailyReportCreateCtrl'\n });\n $stateProvider.state('/Cash', {\n url: '/Cash',\n templateUrl: '/Scripts/app/views/audit/cash/manage.html',\n controller: 'CashManagementCtrl'\n });\n\n $stateProvider.state('/Cash/Report', {\n url: '/Cash/Report',\n templateUrl: '/Scripts/app/views/audit/cash/view-cash.html',\n controller: 'CashManagementCtrl'\n });\n\n $stateProvider.state('/Cash/Variance', {\n url: '/Cash/Variance',\n templateUrl: '/Scripts/app/views/audit/variance/index.html',\n controller: 'CashVarianceCtrl'\n });\n $stateProvider.state('/Cash/Revenue', {\n url: '/Cash/Revenue',\n templateUrl: '/Scripts/app/views/audit/revenue/index.html',\n controller: 'CashRevenueCtrl'\n });\n $stateProvider.state('/Cash/Daily/Audited', {\n url: '/Cash/Daily/Audited',\n templateUrl: '/Scripts/app/views/audit/revenue/checked.html',\n controller: 'DailyCollectionCtrl'\n });\n $stateProvider.state('/Report/Revenue/By/Rate', {\n url: '/Report/Revenue/By/Rate',\n templateUrl: '/Scripts/app/views/report/revenue-by-rate/index.html',\n controller: 'RevenuePivotCtrl'\n });\n $stateProvider.state('/Report/Adjustment/Summary', {\n url: '/Report/Adjustment/Summary',\n templateUrl: '/Scripts/app/views/report/adjustment-pivot/index.html',\n controller: 'AdjustmentPivotCtrl'\n });\n $stateProvider.state('/Messages', {\n url: '/Messages',\n templateUrl: '/Scripts/app/views/messages/index.html',\n controller: 'MessagesCtrl'\n })\n ;\n $stateProvider.state('/Report/CashBalance', {\n url: '/Report/CashBalance',\n templateUrl: '/Scripts/app/views/report/cash-balance/index.html',\n controller: 'CashBalanceReportCtrl'\n });\n $stateProvider.state('/Report/Audit', {\n url: '/Report/Audit',\n templateUrl: '/Scripts/app/views/report/audit/index.html',\n controller: 'AuditReportCtrl'\n });\n $stateProvider.state('/Incidents', {\n url: '/Incidents',\n templateUrl: '/Scripts/app/views/incident/index.html',\n controller: 'IncidentManagementCtrl'\n });\n $stateProvider.state('/Incidents/Add', {\n url: '/Incidents/Add',\n templateUrl: '/Scripts/app/views/incident/add.html',\n controller: 'IncidentCreateEditCtrl',\n resolve: {\n 'locations': ['locationSvc', function (locationSvc) {\n return locationSvc.getLocations();\n }]\n }\n });\n $stateProvider.state('/Incidents/Edit', {\n url: '/Incidents/Edit/:id',\n templateUrl: '/Scripts/app/views/incident/add.html',\n controller: 'IncidentCreateEditCtrl',\n resolve: {\n 'locations': ['locationSvc', function (locationSvc) {\n return locationSvc.getLocations();\n }]\n }\n });\n $stateProvider.state('/Admin', {\n url: '/Admin',\n templateUrl: '/Scripts/app/views/admin/index.html',\n controller: 'HomeCtrl'\n });\n $stateProvider.state('/Admin/Roles', {\n url: '/Admin/Roles',\n templateUrl: '/Scripts/app/views/admin/roles/index.html',\n controller: 'RolesCtrl'\n });\n $stateProvider.state('/Admin/Roles/Add', {\n url: '/Admin/Roles/Add',\n templateUrl: '/Scripts/app/views/admin/roles/add.html',\n controller: 'RoleCtrl'\n });\n $stateProvider.state('/Admin/Roles/Edit', {\n url: '/Admin/Roles/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/roles/edit.html',\n controller: 'RoleCtrl'\n });\n $stateProvider.state('/Admin/Users', {\n url: '/Admin/Users',\n templateUrl: '/Scripts/app/views/admin/users/index.html',\n controller: 'UsersCtrl'\n });\n $stateProvider.state('/Admin/Users/Register', {\n url: '/Admin/Users/Register',\n templateUrl: '/Scripts/app/views/admin/users/create.html',\n controller: 'UserCtrl'\n });\n $stateProvider.state('/Admin/Users/Edit', {\n url: '/Admin/Users/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/users/edit.html',\n controller: 'UserCtrl'\n });\n $stateProvider.state('/Admin/Users/Days', {\n url: '/Admin/Users/Days/:id',\n templateUrl: '/Scripts/app/views/admin/users/days.html',\n controller: 'UserDayCtrl'\n });\n\n $stateProvider.state('/Admin/LocationTypes', {\n url: '/Admin/LocationTypes',\n templateUrl: '/Scripts/app/views/admin/location_types/index.html',\n controller: 'LocationTypesCtrl'\n });\n $stateProvider.state('/Admin/LocationTypes/Add', {\n url: '/Admin/LocationTypes/Add',\n templateUrl: '/Scripts/app/views/admin/location_types/add.html',\n controller: 'LocationTypeCtrl'\n });\n $stateProvider.state('/Admin/LocationTypes/Edit', {\n url: '/Admin/LocationTypes/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/location_types/edit.html',\n controller: 'LocationTypeCtrl'\n });\n $stateProvider.state('/Admin/Services', {\n url: '/Admin/Services',\n templateUrl: '/Scripts/app/views/admin/service/index.html',\n controller: 'ServicesCtrl'\n });\n $stateProvider.state('/Admin/Services/Add', {\n url: '/Admin/Services/Add',\n templateUrl: '/Scripts/app/views/admin/service/add.html',\n controller: 'ServiceCtrl'\n });\n $stateProvider.state('/Admin/Services/Edit', {\n url: '/Admin/Services/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/service/edit.html',\n controller: 'ServiceCtrl'\n });\n $stateProvider.state('/Admin/TicketTypes', {\n url: '/Admin/TicketTypes',\n templateUrl: '/Scripts/app/views/admin/ticket_type/index.html',\n controller: 'TicketTypesCtrl'\n });\n $stateProvider.state('/Admin/TicketTypes/Add', {\n url: '/Admin/TicketTypes/Add',\n templateUrl: '/Scripts/app/views/admin/ticket_type/add.html',\n controller: 'TicketTypeCtrl'\n });\n $stateProvider.state('/Admin/TicketTypes/Edit', {\n url: '/Admin/TicketTypes/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/ticket_type/edit.html',\n controller: 'TicketTypeCtrl'\n });\n $stateProvider.state('/Admin/PaymentTypes', {\n url: '/Admin/PaymentTypes',\n templateUrl: '/Scripts/app/views/admin/payment_type/index.html',\n controller: 'PaymentTypesCtrl'\n });\n $stateProvider.state('/Admin/PaymentTypes/Add', {\n url: '/Admin/PaymentTypes/Add',\n templateUrl: '/Scripts/app/views/admin/payment_type/add.html',\n controller: 'PaymentTypeCtrl'\n });\n $stateProvider.state('/Admin/PaymentTypes/Edit', {\n url: '/Admin/PaymentTypes/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/payment_type/edit.html',\n controller: 'PaymentTypeCtrl'\n });\n $stateProvider.state('/Admin/IncidentTypes', {\n url: '/Admin/IncidentTypes',\n templateUrl: '/Scripts/app/views/admin/incident_type/index.html',\n controller: 'IncidentTypesCtrl'\n });\n $stateProvider.state('/Admin/IncidentTypes/Add', {\n url: '/Admin/IncidentTypes/Add',\n templateUrl: '/Scripts/app/views/admin/incident_type/add.html',\n controller: 'IncidentTypeCtrl'\n });\n $stateProvider.state('/Admin/IncidentTypes/Edit', {\n url: '/Admin/IncidentTypes/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/incident_type/edit.html',\n controller: 'IncidentTypeCtrl'\n });\n $stateProvider.state('/Admin/AdjustmentTypes', {\n url: '/Admin/AdjustmentTypes',\n templateUrl: '/Scripts/app/views/admin/adjustment_type/index.html',\n controller: 'AdjustmentTypesCtrl'\n });\n $stateProvider.state('/Admin/AdjustmentTypes/Add', {\n url: '/Admin/AdjustmentTypes/Add',\n templateUrl: '/Scripts/app/views/admin/adjustment_type/add.html',\n controller: 'AdjustmentTypeCtrl'\n });\n $stateProvider.state('/Admin/AdjustmentTypes/Edit', {\n url: '/Admin/AdjustmentTypes/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/adjustment_type/edit.html',\n controller: 'AdjustmentTypeCtrl'\n });\n $stateProvider.state('/Admin/ExpenseTypes', {\n url: '/Admin/ExpenseTypes',\n templateUrl: '/Scripts/app/views/admin/expense_type/index.html',\n controller: 'ExpenseTypesCtrl'\n });\n $stateProvider.state('/Admin/ExpenseTypes/Add', {\n url: '/Admin/ExpenseTypes/Add',\n templateUrl: '/Scripts/app/views/admin/expense_type/add.html',\n controller: 'ExpenseTypeCtrl'\n });\n $stateProvider.state('/Admin/ExpenseTypes/Edit', {\n url: '/Admin/ExpenseTypes/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/expense_type/edit.html',\n controller: 'ExpenseTypeCtrl'\n });\n $stateProvider.state('/Admin/Shifts', {\n url: '/Admin/Shifts',\n templateUrl: '/Scripts/app/views/admin/shift/index.html',\n controller: 'ShiftsCtrl'\n });\n $stateProvider.state('/Admin/Shifts/Add', {\n url: '/Admin/Shifts/Add',\n templateUrl: '/Scripts/app/views/admin/shift/add.html',\n controller: 'ShiftCtrl'\n });\n $stateProvider.state('/Admin/Shifts/Edit', {\n url: '/Admin/Shifts/Edit/:id',\n templateUrl: '/Scripts/app/views/admin/shift/edit.html',\n controller: 'ShiftCtrl'\n });\n $stateProvider.state('/Admin/Settings', {\n url: '/Admin/Settings',\n templateUrl: '/Scripts/app/views/admin/configuration/index.html',\n controller: 'ConfigurationCtrl'\n });\n $stateProvider.state('/Schedules', {\n url: '/Schedules',\n templateUrl: '/Scripts/app/views/schedule/create.html',\n controller: 'ScheduleCreateCtrl'\n });\n $stateProvider.state('/MySchedules', {\n url: '/MySchedules',\n templateUrl: '/Scripts/app/views/schedule/employee/my-schedule.html',\n controller: 'MyScheduleCtrl'\n });\n $stateProvider.state('/Schedules/Create', {\n url: '/Schedules/Create',\n templateUrl: '/Scripts/app/views/schedule/create.html',\n controller: 'ScheduleCreateCtrl'\n });\n $stateProvider.state('/Schedules/View', {\n url: '/Schedules/View',\n templateUrl: '/Scripts/app/views/schedule/view.html',\n controller: 'ScheduleCreateCtrl'\n });\n $stateProvider.state('/Schedules/EmployeePreferences', {\n url: '/Schedules/EmployeePreferences',\n templateUrl: '/Scripts/app/views/schedule/employee-preferences/index.html',\n controller: 'EmployeePreferenceCtrl'\n });\n $stateProvider.state('/Schedules/EmployeePreferences/Edit/:id', {\n url: '/Schedules/EmployeePreferences/Edit/:id',\n templateUrl: '/Scripts/app/views/schedule/employee-preferences/edit.html',\n controller: 'EmployeePreferenceEditCtrl'\n });\n $stateProvider.state('/Reports', {\n url: '/Reports',\n templateUrl: '/Scripts/app/views/report/index.html',\n controller: 'ReportCtrl'\n });\n $stateProvider.state('/Reports/Employee', {\n url: '/Reports/Employee',\n templateUrl: '/Scripts/app/views/report/employee/index.html',\n controller: 'EmployeeReportCtrl'\n });\n $stateProvider.state('/Reports/Location', {\n url: '/Reports/Location',\n templateUrl: '/Scripts/app/views/report/location/index.html',\n controller: 'LocationReportCtrl'\n });\n\n $stateProvider.state('/Reports/Ticket', {\n url: '/Reports/Ticket',\n templateUrl: '/Scripts/app/views/report/tickets/index.html',\n controller: 'TicketReportCtrl'\n });\n $stateProvider.state('/Reports/Location/ById', {\n url: '/Reports/Location/:id',\n templateUrl: '/Scripts/app/views/report/location/detail.html',\n controller: 'LocationReportCtrl'\n });\n $stateProvider.state('/Reports/Daily', {\n url: '/Reports/Daily',\n templateUrl: '/Scripts/app/views/report/daily/index.html'\n });\n $stateProvider.state('/Reports/Revenue', {\n url: '/Reports/Revenue',\n templateUrl: '/Scripts/app/views/report/location/index.html'\n });\n\n $urlRouterProvider.otherwise('/Home');\n //$stateProvider.otherwise({redirectTo: '/Login'});\n $httpProvider.interceptors.push('authorizationInterceptor');\n }]);\n\napp.scrollTop = function () {\n $('body,html').animate({\n scrollTop: 0\n }, 600);\n};\n\napp.filter('propsFilter', function () {\n return function (items, props) {\n var out = [];\n\n if (angular.isArray(items)) {\n items.forEach(function (item) {\n var itemMatches = false;\n\n var keys = Object.keys(props);\n for (var i = 0; i < keys.length; i++) {\n var prop = keys[i];\n var text = props[prop].toLowerCase();\n if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {\n itemMatches = true;\n break;\n }\n }\n\n if (itemMatches) {\n out.push(item);\n }\n });\n } else {\n // Let the output be the input untouched\n out = items;\n }\n return out;\n };\n});\n\napp.hasRole = function (role) {\n if (app.roles !== undefined && angular.isArray(app.roles)) {\n return (app.roles.indexOf(role) >= 0);\n }\n return false;\n};\n\nwindow.utilities = angular.module(\"custom-utilities\", []);\n","angular\n .module('ustreet-app')\n .factory('mainSvc',\n ['$http', 'serviceHelperSvc', '$cookies', 'localStorageService',\n function ($http, serviceHelper, $cookies, localStorageService) {\n\n var Token = serviceHelper.AuthorizationToken;\n var Account = serviceHelper.Account;\n\n if (angular.isUndefined($http.defaults.headers.common.Authorization) && !angular.isUndefined(localStorageService.get('token'))) {\n $http.defaults.headers.common.Authorization = localStorageService.get('token');\n app.authenticated = true;\n }\n\n var buildFormData = function (formData) {\n var dataString = '';\n for (var prop in formData) {\n if (formData.hasOwnProperty(prop)) {\n dataString += (prop + '=' + formData[prop] + '&');\n }\n }\n return dataString.slice(0, dataString.length - 1);\n };\n\n return {\n login: function (userLogin) {\n var formData = {\n username: userLogin.Email,\n password: userLogin.Password,\n grant_type: 'password'\n };\n return Token.requestToken(buildFormData(formData),\n function (data) {\n $http.defaults.headers.common.Authorization = \"Bearer \" + data.token;\n localStorageService.set('token',\n $http.defaults.headers.common.Authorization);\n app.username = data.userName;\n localStorageService.set('UserName', app.username);\n\n app.authenticated = true;\n\n if (data.ChangePassword === \"true\") {\n app.change_password = true;\n }\n });\n },\n registerUser: function (userRegistration) {\n var registration = Account.register(userRegistration);\n\n return registration;\n },\n logOffUser: function () {\n $http.defaults.headers.common.Authorization = null;\n app.authenticated = false;\n app.roles = [];\n app.username = null;\n localStorageService.clearAll();\n $cookies.remove('token');\n },\n isAuthed: function () {\n return ((!angular.isUndefined($http.defaults.headers.common.Authorization) || !angular.isUndefined($cookies.get('token'))));\n }\n };\n }]);\n","angular\n .module('ustreet-app')\n .controller('MainCtrl',\n ['$scope', '$http', '$location', 'mainSvc', 'roleSvc', 'serviceHelperSvc',\n 'localStorageService', '$window', '$cookies',\n function ($scope, $http, $location, mainSvc, roleSvc, serviceHelper,\n localStorageService, $window, $cookies) {\n\n $scope.isAuthorized = function () {\n var roles = localStorageService.get('Roles');\n return roles !== undefined && roles !== null && roles.length > 0;\n };\n\n $scope.authorized = $scope.isAuthorized();\n\n $scope.login = function (userLogin) {\n $scope.loading = true;\n $scope.errorMessage = '';\n mainSvc.login(userLogin).$promise\n .then(function (data) {\n $scope.checkStatus();\n }).catch(function (errorResponse) {\n if (errorResponse.status === 404) {\n $scope.errorMessage = errorResponse.data[0].Message;\n }\n if (errorResponse.status === 400) {\n $scope.errorMessage = \"Invalid Login/Password\";\n } else {\n $scope.errorMessager = \"An error occurred while performing this action. Please try after some time.\";\n }\n $scope.loading = false;\n });\n\n };\n\n $scope.checkStatus = function () {\n serviceHelper.UserRole.query(function (data) {\n var roles = [];\n angular.forEach(data, function (role) {\n roles.push(role.Key);\n });\n\n localStorageService.set('Roles', roles);\n localStorageService.set('UserName', app.username);\n app.roles = roles;\n\n $scope.$emit('logOn');\n $window.location.href = '/#/Home';\n });\n };\n\n $scope.logOff = function () {\n app.authenticated = false;\n app.roles = [];\n app.username = null;\n serviceHelper.Logout.logOut();\n localStorageService.clearAll();\n $cookies.remove('token');\n\n $scope.$emit('logOff');\n // $location.url('/Login');\n $window.location.href = '/login.html';\n };\n }]);\n\nangular\n .module('ustreet-app')\n .controller('LoginCtrl', ['$scope', 'localStorageService', '$cookies',\n function ($scope, localStorageService, $cookies) {\n $scope.$emit('logOffUser');\n //$http.defaults.headers.common.Authorization = null;\n app.authenticated = false;\n app.roles = [];\n app.username = null;\n localStorageService.clearAll();\n $cookies.remove('token');\n }]);\n","angular.module('ustreet-app')\n .directive('calendar', function () {\n return {\n restrict: 'E',\n replace: true,\n transclude: true,\n scope: {\n changed: '&?',\n disabled: '&?',\n ngModel: '=ngModel'\n },\n controller: function () {\n var vm = this;\n },\n controllerAs: 'vm',\n bindToController: true,\n require: 'ngModel',\n template: '
' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n '
\\n' +\n '
',\n link: function (scope, element, attrs, ngModel) {\n\n scope.$watch(function () {\n return ngModel.$modelValue;\n }, function (newValue) {\n console.log('in watch');\n console.log(newValue);\n if (newValue !== undefined && newValue.toString().includes('T00:00:00')) {\n ngModel.$setViewValue(moment(new Date(newValue), 'yyyy-MM-dd').format('yyyy-MM-DD'));\n //scope.$apply();\n }\n });\n\n element.calendar({\n initialDate: scope.vm.ngModel,\n date: scope.vm.ngModel,\n type: 'date',\n maxDate: new Date(),\n onChange: function (val) {\n ngModel.$setViewValue(val);\n scope.$apply();\n }\n });\n }\n };\n });\n\nangular.module('ustreet-app')\n .directive('timePicker', function () {\n return {\n restrict: 'E',\n replace: true,\n transclude: true,\n scope: {\n changed: '&?',\n disabled: '&?',\n ngModel: '=ngModel'\n },\n controller: function () {\n var vm = this;\n },\n controllerAs: 'vm',\n bindToController: true,\n require: 'ngModel',\n template: '
' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n ' \\n' +\n '
\\n' +\n '
' +\n '
',\n link: function (scope, element, attrs, ngModel) {\n\n element.calendar({\n initialDate: scope.vm.ngModel,\n type: 'time',\n mode: 'hour',\n startMode: 'hour',\n date: scope.vm.ngModel,\n maxDate: new Date(),\n onChange: function (val) {\n ngModel.$setViewValue(val);\n scope.$apply();\n }\n });\n }\n };\n });\n\n\nangular.module('ustreet-app')\n .directive('fomCheckbox', function () {\n return {\n restrict: 'E',\n replace: true,\n transclude: true,\n scope: {\n changed: '&?',\n disabled: '&?',\n ngModel: '=ngModel'\n },\n controller: function () {\n var vm = this;\n },\n controllerAs: 'vm',\n bindToController: true,\n require: 'ngModel',\n template: '
' +\n '
\\n' +\n '
\\n' +\n ' \\n' +\n '
\\n' +\n '
' +\n '
',\n link: function (scope, element, attrs, ngModel) {\n\n element.checkbox({\n onChange: function (val) {\n ngModel.$setViewValue(val);\n scope.$apply();\n }\n });\n }\n };\n });","angular\n .module('ustreet-app')\n .factory('authorizationInterceptor', ['$rootScope', '$q', '$location', function ($rootScope, $q, $location) {\n return {\n request: function(config){\n return config;\n } ,\n responseError: function (rejection) {\n switch (rejection.status) {\n case 0:\n case 401: {\n $rootScope.$broadcast('logOff');\n $location.url('/Login');\n break;\n }\n case 403: {\n //$location.url('/Login');\n break;\n }\n default: {\n break;\n }\n }\n\n return $q.reject(rejection);\n }\n };\n}]);\n\n//$httpProvider.interceptors.push('authorizationInterceptor');\n\n\n// todo: move this to somewhere else where it makes sense\nArray.prototype.sum = function (prop) {\n var total = 0;\n for ( var i = 0, _len = this.length; i < _len; i++ ) {\n total += this[i][prop];\n }\n return total;\n};\n\nArray.prototype.sum2 = function (prop, prop2) {\n var total = 0;\n var _len = this.length;\n for ( var i = 0; i < _len; i++ ) {\n total += parseFloat(this[i][prop][prop2]);\n }\n return total;\n};\n\nArray.prototype.sum3 = function (prop, prop2) {\n var total = 0;\n var _len = this.length;\n for ( var i = 0; i < _len; i++ ) {\n total += parseFloat(this[i][prop].sum(prop2));\n }\n return total;\n};\n\nArray.prototype.contains = function(obj) {\n var i = this.length;\n while (i--) {\n if (this[i] === obj) {\n return true;\n }\n }\n return false;\n};\n\n\nDate.toLocalDate = function(d){\n return moment.utc(d).local().toDate();\n};\n","app.directive(\"cstConfirmModal\", [function () {\n return {\n restrict: \"A\",\n scope: {\n approve: '&onApprove',\n deny: '&onDeny',\n closable: '=closable',\n id: '@modalId',\n title: '@title',\n message: '@message'\n },\n templateUrl: \"/Scripts/app/partials/confirm-modal.html\",\n link: function (scope, element, attrs, ngModelCtrl) {\n\n scope.closeModal = function () {\n angular.element('#' + scope.id).modal('hide');\n };\n\n element.on('click', function (e) {\n angular.element('#' + scope.id).modal('show');\n });\n }\n };\n}]);","app.directive('cstDatepicker', function () {\n return {\n restrict: \"A\",\n require: 'ngModel',\n replace: true,\n link: function (scope, element, attrs, ngModelCtrl) {\n var dPicker = element.datepicker({\n maxDate:0,\n onSelect: function (d) {\n ngModelCtrl.$setViewValue(d);\n scope.$apply();\n ngModelCtrl.$setValidity('invalid', false);\n var test = false;\n }\n });\n element.on('keypress', function (e) {\n return false;\n });\n }\n\n };\n});\n","\n\"use strict\";\nutilities.directive(\"cstExternalUrl\", function ($window) {\n var webUrlPattern = /(ftp|http|https):\\/\\/(\\w+:{0,1}\\w*@)?(\\S+)(:[0-9]+)?(\\/|\\/([\\w#!:.?+=&%@!\\-\\/]))?/;\n\n return {\n link: function (scope, element, attributes) {\n var url = attributes.cstExternalUrl;\n\n if (url && webUrlPattern.test(url)) {\n scope.isWebUrl = true;\n element.css(\"text-decoration\", \"underline\");\n element.css(\"cursor\", \"pointer\");\n }\n\n element.on(\"click\", function () {\n if (scope.isWebUrl) {\n $window.open(url);\n }\n });\n }\n };\n\n});","app.directive('cstDelete', function () {\n return {\n replace: true,\n \n link: function ($scope, element, attrs, controller) {\n console.log(element);\n element.on('click', function (ev) { \n return confirm('Delete item?');\n });\n }\n};\n});",null,"app.directive(\n 'cstModal', function () {\n return {\n required: 'ngModel',\n restrict: 'A',\n link: function (scope, element, attrs, ngModelCtrl) {\n element.on(\n 'click', function (e) {\n var modalId = '#' + attrs.cstModal;\n $(modalId).modal('show');\n }\n );\n }\n };\n }\n);","app.directive('repeatDone', function() {\n return function(scope, element, attrs) {\n if (scope.$last) { // all are rendered\n scope.$eval(attrs.repeatDone);\n console.log('I was here');\n }\n }\n })\n","app.directive('semanticDropdown', function () {\n return {\n restrict: \"A\",\n require: 'ngModel',\n replace: true,\n link: function (scope, element, attrs, ngModelCtrl) {\n var dPicker = element.dropdown({\n transition: 'drop'\n });\n }\n\n };\n});\n\napp.directive('semanticCheckbox', function () {\n return {\n restrict: \"A\",\n require: 'ngModel',\n replace: true,\n link: function (scope, element, attrs, ngModelCtrl) {\n var dPicker = element.checkbox();\n }\n\n };\n});\n\napp.directive('semanticPopup', function () {\n return {\n restrict: \"A\",\n require: 'ngModel',\n replace: true,\n link: function (scope, element, attrs, ngModelCtrl) {\n var dPicker = element.popup({\n inline : true,\n hoverable: true,\n position : 'bottom left',\n delay: {\n show: 300,\n hide: 800\n }\n });\n }\n\n };\n});\n\n\napp.directive('semanticSticky', function () {\n return {\n restrict: \"A\",\n replace: true,\n link: function (scope, element, attrs, ngModelCtrl) {\n var dPicker = element.sticky( );\n }\n\n };\n});\n","app.directive('cstTopMenu', function () {\n return {\n restrict: 'E',\n replace: true,\n templateUrl: '/Scripts/app/partials/top-header.html',\n link: function (scope, element, attrs) {\n var menuItems = element.find(\"a\");\n menuItems.on('click', function () {\n if(menuItems !== undefined && menuItems.parent !== undefined && menuItems.parent.removeClass !== undefined){\n menuItems.parent.removeClass('active');\n $(this).parent.addClass('active');\n }\n \n });\n\n scope.$on('logOff', function () { \n scope.isAuthenticated = false;\n });\n\n scope.$on('logOn', function () { \n scope.isAuthenticated = true;\n });\n }\n };\n});","function PaymentCtrl($filter, $scope, $location, $stateParams, paymentSvc, paymentCategorySvc, projectSvc, userSvc) {\n\n $scope.ready = true;\n\n $scope.AddNewLineItem = function(){\n // this is a payroll.\n $scope.item.PayrollPayments.push(new PayrollLineItem());\n };\n\n $scope.save = function (item) {\n if(item.Id !== undefined){\n // this is an update\n paymentSvc.edit(item).$promise.then(function(data){\n $location.path(\"/Payments\");\n });\n return;\n }\n paymentSvc.add(item).$promise\n .then(function (data) {\n $location.url('/Payments');\n });\n };\n\n $scope.onTypeChanged = function(){\n if($scope.item.Type === 'payroll'){\n $scope.item.PayrollPayments.clear();\n $scope.item.ProjectPayments.clear();\n } else{\n $scope.projects = $scope.projects.filter(function(p) {\n return p.IsActive === true;\n });\n //$scope.item.PayrollPayments.clear();\n $scope.item.ProjectPayments = [{}];\n }\n };\n\n $scope.OnCategoryChanged = function(value){\n $scope.CurrentCategory = _.findWhere($scope.paymentCategories, {Id: Number(value)});\n };\n\n $scope.item = {\n PayrollPayments: [],\n ProjectPayments: []\n };\n\n function initiateObjects(data){\n $scope.item = data;\n $scope.item.PaymentDate = $filter('date')(new Date($scope.item.PaymentDate), 'yyyy-MM-dd','utc');\n if($scope.item.PayrollPayments.length > 0){\n for(var i= 0; i< $scope.item.PayrollPayments.length; i++){\n $.extend($scope.item.PayrollPayments[i], new PayrollLineItem());\n }\n }\n if($scope.item.Type === 'project'){\n $scope.OnCategoryChanged($scope.item.ProjectPayments[0].ExpenseCategoryId);\n }\n $scope.ready = true;\n }\n\n $scope.init = function(){\n $scope.ready = false;\n $scope.projects = projectSvc.getList();\n $scope.paymentCategories = paymentCategorySvc.getList();\n $scope.employees = userSvc.getList();\n\n // scope - load the existing payment\n if(angular.isDefined($stateParams.id)){\n paymentSvc.getItem($stateParams.id).$promise.then(function(data){\n initiateObjects(data);\n });\n }else{\n $scope.ready = true;\n }\n };\n\n $scope.GeneratePayroll = function(){\n $scope.ready = false;\n // disable the button so that more than 1 payroll is not generated\n $scope.disableForm = true;\n //TODO: display a loading indicator\n\n // call the server side code\n // load the object and initiate it.\n paymentSvc.InitiateNewPayroll().$promise.then(function(data){\n // clear the ids and unecessary fields from current objects\n data.Id = undefined;\n data.Status = 'draft';\n data.Remarks = '';\n angular.forEach(data.PayrollPayments, function(p){\n p.Id = undefined;\n p.HoursWorked = 0;\n p.Remarks = \"\";\n });\n initiateObjects(data);\n });\n // re-enable form\n $scope.disableForm = false;\n };\n $scope.init();\n\n}\n\nangular\n .module('ustreet-app')\n .component('paymentForm', {\n bindings: 'paymentForm',\n controller: PaymentCtrl,\n templateUrl: '/Scripts/app/components/payment/partials/form.html'\n });\n\nPaymentCtrl.$inject = ['$filter','$scope', '$location', '$stateParams', 'paymentSvc', 'paymentCategorySvc', 'projectSvc', 'userSvc']\n","function PaymentsCtrl($scope, paymentSvc, paymentCategorySvc, projectSvc, userSvc) {\n\n $scope.page = 0;\n $scope.showConfirmedPayments = false;\n $scope.list = [];\n\n $scope.projects = projectSvc.getList();\n $scope.paymentCategories = paymentCategorySvc.getList();\n\n $scope.init = function (p) {\n if (p !== undefined) {\n $scope.page = p;\n }\n $scope.loading = true;\n $scope.hasPermission = true;\n $scope.request = paymentSvc.getList({includeConfirmed: $scope.showConfirmedPayments, pageNumber: $scope.page});\n\n $scope.request.$promise.then(function (d) {\n $scope.list = d.List;\n $scope.total_payments = d.TotalCount;\n $scope.pages = [];\n for (let i = 0; i <= d.TotalCount / 50; i++) {\n $scope.pages.push(i);\n }\n $scope.loading = false;\n }).catch(function (e) {\n $scope.loading = false;\n $scope.hasPermission = false;\n });\n };\n\n $scope.OpenModalForDeleteDraftPayment = function (id) {\n $scope.show_are_you_sure = true;\n $scope.id_to_delete = id;\n };\n\n $scope.CancelDialog = function () {\n $scope.show_are_you_sure = false;\n };\n\n $scope.DeleteDraftPayment = function () {\n $scope.delete_error_message = '';\n paymentSvc.deleteItem($scope.id_to_delete)\n\n .$promise\n .then(function (data) {\n $scope.messsage = 'Deleted the draft payment.';\n $scope.init($scope.page);\n $scope.show_are_you_sure = false;\n }\n ).catch(function (data) {\n $scope.delete_error_message = 'This draft cannot be deleted due to error.';\n });\n };\n\n $scope.init();\n // initialize the checkboxes\n $('.ui.checkbox')\n .checkbox()\n ;\n}\n\nangular\n .module('ustreet-app')\n .component('paymentList', {\n bindings: 'paymentList',\n controller: PaymentsCtrl,\n templateUrl: '/Scripts/app/components/payment/partials/index.html'\n });\n\nPaymentsCtrl.$inject = ['$scope', 'paymentSvc', 'paymentCategorySvc', 'projectSvc', 'userSvc']\n","angular\n .module('ustreet-app')\n .config(['$stateProvider', function ($stateProvider) {\n $stateProvider.state('/PaymentCategory', {\n url: '/PaymentCategory',\n templateUrl: '/Scripts/app/views/payment/category/index.html',\n controller: 'PaymentCategoriesCtrl'\n });\n $stateProvider.state('/PaymentCategory/Add', {\n url: '/PaymentCategory/Add',\n templateUrl: '/Scripts/app/views/payment/category/add.html',\n controller: 'PaymentCategoryCtrl'\n });\n $stateProvider.state('/PaymentCategory/Edit', {\n url: '/PaymentCategory/Edit/:id',\n templateUrl: '/Scripts/app/views/payment/category/edit.html',\n controller: 'PaymentCategoryCtrl'\n });\n $stateProvider.state('/Project', {\n url: '/Project',\n templateUrl: '/Scripts/app/views/payment/projects/index.html',\n controller: 'ProjectsCtrl'\n });\n $stateProvider.state('/Project/Add', {\n url: '/Project/Add',\n templateUrl: '/Scripts/app/views/payment/projects/add.html',\n controller: 'ProjectCtrl'\n });\n $stateProvider.state('/Project/Edit', {\n url: '/Project/Edit/:id',\n templateUrl: '/Scripts/app/views/payment/projects/edit.html',\n controller: 'ProjectCtrl'\n });\n $stateProvider.state('/Project/History', {\n url: '/Project/History/:id',\n templateUrl: '/Scripts/app/views/payment/projects/history.html',\n controller: 'ProjectHistoryCtrl'\n });\n $stateProvider.state('/Payments', {\n url: '/Payments',\n component: 'paymentList'\n });\n $stateProvider.state('/Payments/Add', {\n url: '/Payments/Add',\n component: 'paymentForm'\n });\n $stateProvider.state('Payments/Edit', {\n url: '/Payments/Edit/{id}',\n component: 'paymentForm'\n });\n }]);","angular\n .module('ustreet-app')\n .controller('DailyReportCreateCtrl', ['$scope', 'ticketTypeSvc', 'adjustmentTypeSvc', 'expenseTypeSvc', 'userSvc', 'paymentTypeSvc', 'dailyReportSvc', '$stateParams', '$location', '$window',\n function ($scope, ticketTypeSvc, adjustmentTypeSvc, expenseTypeSvc, userSvc, paymentTypeSvc, dailyReportSvc, $stateParams, $location, $window) {\n\n // prep the whole wizard,\n // this is where the life of the application starts.\n $scope.ready = false;\n\n $scope.current = dailyReportSvc\n .getItem($stateParams.id)\n .then(\n function (data) {\n $scope.current = data;\n // angular.forEach(data.Roasters, function (r) {\n // r.StartTime = new Date(r.StartTime);\n // r.EndTime = new Date(r.EndTime);\n // });\n $scope.ready = true;\n $scope.viewOnly = ($scope.current.Status !== 'Draft');\n if ($scope.hasRole('ADMIN')) {\n $scope.viewOnly = false;\n }\n },\n function (data) {\n // on error\n $window.history.back();\n }\n );\n\n\n $scope.deleteFullReport = function () {\n var locationId = $scope.current.LocationId;\n var deleteTask = dailyReportSvc.deleteItem($scope.current.Id);\n deleteTask.$promise.then(function (data) {\n $location.path('/Home');\n });\n };\n\n $scope.hasRole = app.hasRole;\n\n $scope.FilterObject = function (arr, id) {\n return _.findWhere(arr, {'Id': parseInt(id)});\n };\n\n\n $scope.scrollTop = app.scrollTop;\n $scope.TicketTypes = ticketTypeSvc.getList();\n $scope.Employees = userSvc.getList();\n $scope.PaymentTypes = paymentTypeSvc.getList();\n $scope.ExpenseTypes = expenseTypeSvc.getList();\n $scope.AdjustmentTypes = adjustmentTypeSvc.getList();\n\n $scope.compareNumbers = function (val1, val2) {\n if (angular.isUndefined(val1) || angular.isUndefined(val2)) {\n return false;\n }\n return (Number(val1) === Number(val2));\n };\n // step one\n //\n $scope.TicketBeginningBalance = function () {\n var total = 0;\n angular.forEach($scope.current.DailyTickets, function (recipt) {\n if (angular.isNumber(recipt.EndTicketNumber - recipt.StartTicketNumber)) {\n total = total + recipt.EndTicketNumber - recipt.StartTicketNumber;\n }\n });\n return total;\n };\n\n $scope.RemainingTickets = function () {\n var total = 0;\n angular.forEach($scope.current.DailyTickets, function (recipt) {\n if (angular.isNumber(recipt.EndTicketNumber - recipt.ClosingTicketNumber)) {\n total = total + recipt.EndTicketNumber - recipt.ClosingTicketNumber;\n }\n });\n return total;\n };\n\n\n $scope.IsTicketInfoValid = function () {\n $scope.IsStepOneValid = true;\n angular.forEach($scope.current.DailyTickets, function (recipt) {\n if (angular.isNumber(recipt.EndTicketNumber) && angular.isNumber(recipt.ClosingTicketNumber) && angular.isNumber(recipt.StartTicketNumber)) {\n var total = recipt.EndTicketNumber < recipt.StartTicketNumber;\n var start = recipt.ClosingTicketNumber < recipt.StartTicketNumber;\n var end = recipt.EndTicketNumber < recipt.ClosingTicketNumber;\n if (total || start || end) {\n $scope.IsStepOneValid = false;\n }\n } else {\n $scope.IsStepOneValid = false;\n }\n });\n return $scope.IsStepOneValid;\n };\n\n $scope.OnTicketInfoChanged = function () {\n $scope.IsTicketInfoValid();\n };\n\n // validate whatever has been loaded on memory\n $scope.OnTicketInfoChanged();\n\n $scope.TotalIssuedTicket = function () {\n return $scope.TicketBeginningBalance() - $scope.RemainingTickets();\n };\n\n // End of step one\n $scope.OnSales = function () {\n console.warn(\"Sales Changed to \" + $scope.TotalCashSales());\n };\n\n $scope.TotalAdjustedTickets = function () {\n if ($scope.current.DailyAdjustments === undefined) {\n return 0;\n }\n\n var total = $scope.current.DailyAdjustments.sum(\"TicketCount\");\n return total;\n };\n\n $scope.TotalSoldTicket = function () {\n if ($scope.current.DailySales === undefined) {\n return 0;\n }\n\n return $scope.current.DailySales.sum(\"TicketCount\");\n };\n\n $scope.TotalSales = function () {\n if ($scope.current.DailySales === undefined) {\n return 0;\n }\n\n return $scope.current.DailySales.map((recipt) => (Number(recipt.TicketCount) * Number(recipt.Rate)))\n .reduce((a, b) => a + b, 0);\n };\n\n $scope.TotalCashSales = function () {\n\n if ($scope.current.DailySales === undefined) {\n return 0;\n }\n\n return $scope.current.DailySales.filter((recipt) => (recipt.PaymentTypeId === 1))\n .map((recipt) => (recipt.TicketCount * recipt.Rate))\n .reduce((a, b) => a + b, 0);\n };\n\n $scope.onFileChanged = function () {\n console.log(\"File changed\");\n console.log($scope.current.file);\n };\n window.dailyReportSvc = dailyReportSvc;\n $scope.SelectFile = function (event) {\n const file = event.target.files[0];\n let reader = new FileReader();\n reader.onload = function (e) {\n $scope.NewImage = e.target.result;\n\n dailyReportSvc.uploadDepositSlip($scope.current.Id, {\n Image: e.target.result,\n OriginalFileName: file.name,\n Id: $scope.current.Id\n });\n $scope.$apply();\n };\n reader.readAsDataURL(file);\n\n };\n\n $scope.TotalExpenses = function () {\n if ($scope.current.DailyExpenses === undefined) {\n return 0;\n }\n\n let total = 0;\n for (const expense of $scope.current.DailyExpenses) {\n total = total + (expense.Quantity * expense.UnitPrice);\n }\n return total;\n };\n\n $scope.OnBeginningTicketNumberChanged = function (recipt) {\n recipt.EndTicketNumber = recipt.StartTicketNumber + 1;\n recipt.ClosingTicketNumber = recipt.StartTicketNumber;\n $scope.$emit('IsTicketInfoValid');\n };\n\n // last step\n $scope.finishedWizard = function () {\n $scope.processing = true;\n dailyReportSvc.edit($scope.current)\n .then(function (data) {\n $location.path('/Daily/' + data.LocationId);\n }, function (error) {\n\n $scope.error = error.statusText;\n $scope.processing = false;\n });\n\n };\n\n $scope.postWizard = function () {\n $scope.processing = true;\n $scope.current.Status = \"Submitted\";\n dailyReportSvc.edit($scope.current).then(function (data) {\n $location.path('/Daily/' + data.LocationId);\n }, function (error) {\n $scope.error = error.statusText;\n $scope.processing = false;\n });\n };\n\n $scope.RemoveTicket = function (ticket, index) {\n $scope.ticketToDelete = ticket;\n $scope.indexToDelete = index;\n $scope.show_remove_ticket_modal = true;\n };\n\n $scope.RemoveTicketConfirmed = function () {\n const remove = dailyReportSvc.removeTicket({Id: $scope.ticketToDelete.Id, ReportId: $scope.current.Id});\n remove.$promise.then(function () {\n $scope.current.DailyTickets.splice($scope.indexToDelete, 1);\n });\n $scope.show_remove_ticket_modal = false;\n };\n\n $scope.CloseModal = function () {\n $scope.show_remove_ticket_modal = false;\n };\n }]);\n","angular\n .module('ustreet-app')\n .controller('DailyReportCtrl', ['$scope', 'ticketTypeSvc', 'userSvc', 'paymentTypeSvc', 'dailyReportSvc', 'locations', '$location', 'currentUserService', '$stateParams',\n function($scope, ticketTypeSvc, userSvc, paymentTypeSvc, dailyReportSvc, locations, $location, currentUserService, $stateParams) {\n\n $scope.OnLocationChanged = function () {\n $scope.loading = true;\n $scope.options = dailyReportSvc.getListByLocation($scope.LocationId);\n $scope.options.$promise.then(function(d) {\n $scope.loading = false;\n $scope.MarkReady();\n });\n };\n\n\n $scope.Create = function(period) {\n $scope.processing = true;\n $scope.loading = true;\n dailyReportSvc.create(period, $scope.LocationId).then(function(data) {\n $location.path('/Daily/Wizard/' + data.Id);\n });\n };\n\n $scope.Continue = function(period) {\n $location.path('Daily/Wizard/' + period.Id);\n };\n\n $scope.OpenCustomDate = function() {\n $scope.creatingCustomReport = true;\n $scope.loading = true;\n const open = dailyReportSvc.open($scope.LocationId);\n open.$promise.then(function() {\n $scope.creatingCustomReport = false;\n $scope.OnLocationChanged();\n });\n };\n\n $scope.init = function(){\n $scope.ready = false;\n $scope.locations = locations;\n $scope.locations.$promise.then(function(){\n if ($stateParams.id !== undefined) {\n $scope.LocationId = $stateParams.id;\n $scope.OnLocationChanged();\n } else {\n // this gets the default list\n $scope.options = dailyReportSvc.getList();\n $scope.options.$promise.then(function(d){\n $scope.LocationId = d[0].LocationId;\n $scope.MarkReady();\n });\n }\n });\n\n };\n\n $scope.MarkReady = function(){\n $scope.ready =true;\n };\n\n $scope.init();\n }\n]);\n","angular\n .module('ustreet-app')\n .controller('AdjustmentPivotCtrl', ['$scope', '$location', '$window', '$stateParams', '$filter', 'serviceHelperSvc', function ($scope, $location, $window, $stateParams, $filter, serviceHelperSvc) {\n\n $scope.locations = serviceHelperSvc.Location.query();\n $scope.filter = {lastDate : new Date()};\n\n function pivotMyData(data){\n $scope.prices = _.uniq(_.pluck(data, 'Rate'));\n $scope.paymentTypes = _.uniq(_.pluck(data, 'PaymentType'));\n $scope.dates = _.uniq( _.pluck(data, 'ReportDate'));\n\n $scope.pivot = [];\n for( var date in $scope.dates){\n date = $scope.dates[date];\n if($scope.pivot.indexOf(date) === -1){\n $scope.pivot[date] = {ReportDate : date, data: []};\n }\n var reportsForDate = _.where(data, {ReportDate: date});\n if(reportsForDate.length > 0){\n $scope.pivot[date].Supervisor = reportsForDate[0].SupervisorName;\n }\n\n for(var pt in $scope.paymentTypes){\n $scope.pivot[date][$scope.paymentTypes[pt]] = [];\n var pts = _.where(reportsForDate, {PaymentType : $scope.paymentTypes[pt]});\n for(var rt in $scope.prices){\n $scope.pivot[date][$scope.paymentTypes[pt]][$scope.prices[rt]] = _.findWhere(pts, {Rate: $scope.prices[rt]});\n }\n }\n }\n $scope.loading = false;\n }\n\n $scope.ChangeParams = function () {\n console.log($scope.filter);\n $scope.prices = $scope.rows = $scope.pivot = null;\n $scope.loading = true;\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined && $scope.location !== undefined) {\n var filter = { startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'), endDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'), locationId: $scope.location };\n $scope.rows = serviceHelperSvc.AdjustmentPivot.query(filter);\n $scope.rows.$promise.then(function (data) {\n pivotMyData(data);\n });\n }\n };\n\n $scope.ExportExcel = function(){\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined && $scope.location !== undefined) {\n var filter = { startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'), endDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'), locationId: $scope.location };\n var param = jQuery.param( filter );\n var url = config.apiurl + 'api/PivotAdjustments/Excel?' + param;\n $window.open(url,\"_BLANK\");\n }\n };\n}]);\n","angular\n .module('ustreet-app')\n .controller('CashManagementCtrl', ['$scope', '$anchorScroll' ,'$location', '$stateParams','$filter', 'serviceHelperSvc','dailyReportSvc','ticketTypeSvc','userSvc','paymentTypeSvc','expenseTypeSvc','adjustmentTypeSvc',\n function ($scope, $anchorScroll , $location, $stateParams,$filter, serviceHelperSvc, dailyReportSvc, ticketTypeSvc, userSvc, paymentTypeSvc, expenseTypeSvc, adjustmentTypeSvc) {\n\n $scope.TicketTypes = ticketTypeSvc.getList();\n $scope.Employees = userSvc.getList();\n $scope.PaymentTypes = paymentTypeSvc.getList();\n $scope.ExpenseTypes = expenseTypeSvc.getList();\n $scope.AdjustmentTypes = adjustmentTypeSvc.getList();\n\n $scope.parseFloat = parseFloat;\n $scope.isReady = false;\n\n\n $scope.hasRole = app.hasRole;\n $scope.$watch(\"filter.lastDate\", function(){\n $scope.ChangeLastDate();\n });\n\n $scope.hasPermission = false;\n // default date should be today\n $scope.filter = {lastDate: $filter('date')(new Date(),'MM-dd-yyyy')};\n\n\n $scope.ChangeLastDate = function(){\n $scope.isReady = false;\n $scope.rows = [];\n let rows = serviceHelperSvc.Audits.get({date: $filter('date')($scope.filter.lastDate,'MM-dd-yyyy') });\n\n rows.$promise.then(function (data) {\n\n $scope.header = data[0];\n // remove the dummy header row.\n data.splice(0, 1);\n $scope.rows = data;\n $scope.isReady = true;\n $scope.hasPermission = true;\n\n }).catch(() => {\n $scope.hasPermission = false;\n $scope.isReady = true;\n });\n };\n\n $scope.ConfirmDay = function(day){\n day.IsSaving = true;\n serviceHelperSvc.SaveAudit.post(day).$promise.then(function(data){\n day.IsAudited = true;\n if(day.IsBeingEdited){\n day.IsBeingEdited = false;\n day.IsCorrected = (day.CashSales !== day.OldValue);\n }\n day.IsSaving = false;\n });\n };\n\n $scope.ShowDailyReport = function(id){\n $scope.current = dailyReportSvc.getItem(id).then(\n function(data){\n $scope.current = data;\n angular.forEach(data.Roasters, function (r) {\n r.StartTime = new Date(r.StartTime);\n r.EndTime = new Date(r.EndTime);\n });\n $scope.viewOnly = ($scope.current.Status !== 'Draft');\n $scope.show_daily_report_modal = true;\n //$location.hash('viewStart');\n $scope.ready = true;\n $anchorScroll();\n }\n );\n\n //TODO: remove this part\n // Actually, go ahead and move it to the model class\n $scope.TotalSales = function(){\n if($scope.current.DailySales === undefined) {\n return 0;\n }\n\n var total = 0;\n for(var i = 0; i < $scope.current.DailySales.length; i++){\n var recipt = $scope.current.DailySales[i];\n if(angular.isNumber(recipt.TicketCount)){\n total = total + (recipt.TicketCount * recipt.Rate);\n }\n }\n return total;\n };\n\n $scope.TotalCashSales = function () {\n\n if($scope.current.DailySales === undefined) {\n return 0;\n }\n\n var total = 0;\n for(var i = 0; i < $scope.current.DailySales.length; i++){\n var recipt = $scope.current.DailySales[i];\n //WARNING: Ticket type id is hardcoded here for cash\n if (angular.isNumber(recipt.TicketCount) && recipt.PaymentTypeId === 1) {\n total = total + (recipt.TicketCount * recipt.Rate);\n }\n }\n return total;\n };\n\n $scope.TotalExpenses = function(){\n if($scope.current.DailyExpenses === undefined) {\n return 0;\n }\n\n var total = 0;\n for(var i = 0; i < $scope.current.DailyExpenses.length; i++){\n var expense = $scope.current.DailyExpenses[i];\n total = total + (expense.Quantity * expense.UnitPrice);\n }\n return total;\n };\n // end of view daily report section\n\n };\n\n}]);\n","angular\n .module('ustreet-app')\n .controller('CashRevenueCtrl', ['$scope', '$location', '$http', '$window', '$stateParams', '$filter', 'serviceHelperSvc', function ($scope, $location, $http, $window, $stateParams, $filter, serviceHelperSvc) {\n\n $scope.locations = serviceHelperSvc.Location.query();\n\n //$scope.loading = true;\n\n $scope.filter = {\n startDate: $location.search().startDate,\n lastDate: $location.search().endDate,\n location: $location.search().location\n };\n\n $scope.ChangeParams = function () {\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined && $scope.filter.location !== undefined) {\n $location.search('startDate', $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'));\n $location.search('endDate', $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'));\n $location.search('location', $scope.filter.location);\n\n var filter = {\n startDate: $location.search().startDate,\n lastDate: $location.search().endDate,\n location: $location.search().location\n };\n $scope.loading = true;\n $scope.rows = serviceHelperSvc.RevenueReport.get(filter);\n $scope.rows.$promise.then(function (data) {\n $scope.loading = false;\n }).error(function (data) {\n $scope.loading = false;\n });\n }\n };\n\n $scope.ExportExcel = function () {\n\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined && $scope.filter.location !== undefined) {\n var filter = {\n startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'),\n lastDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'),\n location: $scope.filter.location\n };\n var param = jQuery.param(filter);\n var url = config.apiurl + 'api/RevenueReport/Excel?' + param;\n $window.open(url, \"_BLANK\");\n }\n };\n\n setTimeout(function() {\n $scope.ChangeParams();\n }, 100);\n }]);\n","angular\n .module('ustreet-app')\n .controller('CashVarianceCtrl', ['$scope','$window', '$location', '$stateParams', '$filter', 'serviceHelperSvc', function ($scope, $window, $location, $stateParams, $filter, serviceHelperSvc) {\n\n $scope.ChangeParams = function () {\n\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined) {\n var filter = { startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'), lastDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy') };\n $scope.loading = true;\n $scope.rows = serviceHelperSvc.VarianceReport.get(filter);\n $scope.rows.$promise.then(function(){\n $scope.loading = false;\n });\n }\n\n };\n\n $scope.ExportExcel = function(){\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined) {\n var filter = { startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'), lastDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy') };\n var param = jQuery.param( filter );\n var url = config.apiurl + 'api/VarianceReport/Excel?' + param;\n $window.open(url,\"_BLANK\");\n }\n };\n\n}]);\n","angular\n .module('ustreet-app')\n .controller('DailyCollectionCtrl', ['$scope', '$location', '$http', '$window', '$stateParams', '$filter', 'serviceHelperSvc', function ($scope, $location, $http, $window, $stateParams, $filter, serviceHelperSvc) {\n\n $scope.locations = serviceHelperSvc.Location.query();\n\n $scope.loading = true;\n\n $scope.filter = {\n startDate: $location.search().startDate,\n };\n\n $scope.ChangeParams = function () {\n console.log('Clicked view button');\n if ($scope.filter.startDate !== undefined) {\n $location.search('startDate', $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'));\n var filter = {\n forDate: $location.search().startDate\n };\n $scope.rows = serviceHelperSvc.DailyCollectionReport.get(filter);\n }\n };\n\n $scope.ExportExcel = function () {\n console.log('In Export Excel');\n if ($scope.filter.startDate !== undefined) {\n console.log('In Export Excel');\n var filter = {\n forDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy')\n };\n var param = jQuery.param(filter);\n var url = config.apiurl + 'api/DailyCollectionReport/Excel?' + param;\n $window.open(url, \"_BLANK\");\n }\n };\n\n setTimeout(function() {\n $scope.ChangeParams();\n }, 100);\n\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('RevenuePivotCtrl', ['$scope', '$window', '$location', '$stateParams', '$filter', 'serviceHelperSvc', function ($scope, $window, $location, $stateParams, $filter, serviceHelperSvc) {\n\n $scope.locations = serviceHelperSvc.Location.query();\n $scope.filter = {\n startDate: $location.search().startDate,\n lastDate: $location.search().endDate,\n location: $location.search().location\n };\n\n function pivotMyData(data) {\n $scope.prices = _.uniq(_.pluck(data, 'Rate')).sort((a, b) => a - b);\n $scope.paymentTypes = _.uniq(_.pluck(data, 'PaymentType'));\n $scope.dates = _.uniq(_.pluck(data, 'ReportDate'));\n $scope.headers = $scope.paymentTypes.flatMap(p => $scope.prices.map(r => {\n return {Name: p + ' ' + r, PaymentType: p, Rate: r};\n }));\n console.log($scope.headers);\n $scope.pivot = [];\n $scope.dates.forEach((date) => {\n if ($scope.pivot.indexOf(date) === -1) {\n $scope.pivot[date] = {ReportDate: date, data: []};\n }\n let reportsForDate = _.where(data, {ReportDate: date});\n if (reportsForDate.length > 0) {\n $scope.pivot[date].SupervisorName = reportsForDate[0].SupervisorName;\n }\n\n for (let pt in $scope.paymentTypes) {\n $scope.pivot[date][$scope.paymentTypes[pt]] = [];\n let pts = _.where(reportsForDate, {PaymentType: $scope.paymentTypes[pt]});\n for (let rt in $scope.prices) {\n $scope.pivot[date][$scope.paymentTypes[pt]][$scope.prices[rt]] = _.findWhere(pts, {Rate: $scope.prices[rt]});\n }\n }\n });\n }\n\n $scope.ChangeParams = function () {\n $scope.prices = $scope.rows = $scope.pivot = null;\n $scope.loading = true;\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined && $scope.filter.location !== undefined) {\n $location.search('startDate', $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'));\n $location.search('endDate', $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'));\n $location.search('location', $scope.filter.location);\n\n let filter = {\n startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'),\n endDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'),\n locationId: $scope.filter.location\n };\n $scope.rows = serviceHelperSvc.RevenuePivot.query(filter);\n $scope.rows.$promise.then(function (data) {\n pivotMyData(data);\n $scope.loading = false;\n }).catch((response) => {\n $scope.loading = false;\n $scope.hasPermission = false;\n });\n }\n };\n\n $scope.ExportExcel = function () {\n if ($scope.filter.startDate !== undefined && $scope.filter.lastDate !== undefined && $scope.filter.location !== undefined) {\n let filter = {\n startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'),\n endDate: $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'),\n locationId: $scope.filter.location\n };\n let param = jQuery.param(filter);\n let url = config.apiurl + 'api/PivotRevenue/Excel?' + param;\n $window.open(url, \"_BLANK\");\n }\n };\n }]);\n","angular\n .module('ustreet-app')\n .controller('ForgotCtrl', ['$scope', function ($scope) {\n \n $scope.forgotPasswordClicked = function(form){\n if($scope.isValid()){\n \n }\n };\n \n $scope.isValid = function(){\n return (!angular.isUndefined($scope.forgotPassword) && (!angular.isUndefined($scope.forgotPassword.Email) || !angular.isUndefined($scope.forgotPassword.Phone)));\n };\n \n // check if the form is valid on load.\n $scope.isValid();\n}]);","angular\n .module('ustreet-app')\n .controller('HomeCtrl', ['$scope', '$filter', '$location', 'serviceHelperSvc', 'localStorageService', '$http',\n function($scope, $filter, $location, serviceHelperSvc, localStorageService, $http) {\n\n app.roles = localStorageService.get('Roles');\n $http.defaults.headers.common.Authorization = localStorageService.get('token');\n\n $scope.ready = true;\n if (app.change_password) {\n $location.path('/Profile');\n }\n\n\n $scope.topLocationsChart = {\n chart: {\n caption: \"Top Locations \" ,\n theme: 'ocean',\n slantlabels: \"45\"\n },\n data: []\n };\n\n $scope.sameDayIncome = {\n chart: {\n caption: 'Same Day Income Trend ' ,\n theme: 'ocean',\n slantlabels: \"45\"\n },\n data: []\n };\n\n $scope.paymentTypeSummaryChart = {\n chart: {\n caption: 'Payment Type Summary - Today ' ,\n showlabels: \"0\",\n showlegend: \"1\",\n enablemultislicing: \"0\",\n showpercentvalues: \"1\",\n showpercentintooltip: \"0\",\n plottooltext: \"Payment Type : $label Daily Sales : $datavalue\",\n showPercentInTooltip: \"0\",\n decimals: \"1\",\n useDataPlotColorForLabels: \"1\",\n theme: \"fint\"\n },\n data: []\n };\n\n $scope.hasRole = app.hasRole;\n\n function view(dateParam) {\n if(!$scope.hasRole('ADMIN')){\n return;\n }\n\n $scope.loading = true;\n var date = $filter('date')(dateParam, 'MM-dd-yyyy');\n $scope.summary = serviceHelperSvc.DReport.get({\n date: date\n });\n\n var d = [];\n $scope.summary.$promise.then(function() {\n for (var i = 0; $scope.summary.TopLocationByIncome !== undefined && $scope.summary.TopLocationByIncome.length > i && i < 10; i++) {\n var income = $scope.summary.TopLocationByIncome[i];\n d.push({\n label: income.LocationName,\n value: income.Amount,\n \"color\": \"008ee4\"\n });\n\n }\n $scope.topLocationsChart.data = d;\n $scope.topLocationsChart.chart.caption = 'Top Locations on ' + date;\n\n d = [];\n for (var index = 9; index >= 0 && $scope.summary.SameDayIncomeTrend !== undefined; index--) {\n var incomeObj = $scope.summary.SameDayIncomeTrend[index];\n d.push({\n label: $filter('date')(incomeObj.ReportDate, 'dd MMM'),\n value: incomeObj.Amount,\n \"color\": (index === 0)?\"CC2222\":\"008ee4\"\n });\n }\n\n var stringDate = new moment().subtract(1, 'days').format('dddd');\n if(moment(date).isValid()){\n stringDate = new moment(date).format('dddd');\n }\n $scope.sameDayIncome.chart.caption = 'Same Day Income Trend - (' + stringDate + ')';\n $scope.sameDayIncome.data = d;\n // do the part about payment ticketTypeSvc\n d = [];\n for(var index2 = 0; $scope.summary.PaymentTypeSummary !== undefined && index2 < $scope.summary.PaymentTypeSummary.length; index2++){\n var revenue = $scope.summary.PaymentTypeSummary[index2];\n d.push({label: revenue.Name, value: revenue.Revenue});\n }\n\n $scope.paymentTypeSummaryChart.data = d;\n $scope.paymentTypeSummaryChart.chart.caption = 'Payment type summary on ' + date;\n $scope.ready = true;\n $scope.loading = false;\n }, function (response) {\n console.log(response);\n });\n\n }\n\n $scope.$watch('filter.date', function(data) {\n if ($scope.filter && $scope.filter.date) {\n var dt = $filter('date')(new moment($scope.filter.date,\"MM-DD-YYYY\").toDate(), 'MM-dd-yyyy');\n view(dt);\n } else {\n $scope.filter = {date: $filter('date')(new moment().subtract(1, 'days').toDate(), 'MM-dd-yyyy')};\n }\n });\n\n $scope.ViewSummary = function() {\n view($scope.filter.date);\n };\n\n if (!app.home_loaded) {\n $('.sidebar').sidebar('setting', {\n dimPage: false\n }); //.sidebar('toggle');\n app.home_loaded = true;\n }\n\n}]);\n","angular\n .module('ustreet-app')\n .controller('IncidentCreateEditCtrl', [\n '$q', '$scope', '$stateParams', '$filter', '$location', 'incidentSvc', 'locations', 'incidentTypeSvc', 'userSvc', function ($q, $scope, $stateParams, $filter, $location, service, locations, incidentTypeSvc, userSvc) {\n let url = '/Incidents';\n\n $scope.OnImageChanged = function (file) {\n let reader = new FileReader();\n reader.onload = function (e) {\n $scope.NewImage = e.target.result;\n $scope.item.Images = ($scope.item.Images == undefined) ? [] : $scope.item.Images;\n $scope.item.Images.push({Image: $scope.NewImage});\n $scope.$apply();\n };\n reader.readAsDataURL(file.target.files[0]);\n\n };\n\n $scope.employees = userSvc.getList();\n $scope.locations = locations;\n $scope.types = incidentTypeSvc.getList();\n\n $scope.save = function (item) {\n $scope.saving = true;\n //item.EventDate = new Date(item.EventDate);\n if (item.ID !== undefined) {\n return $scope.edit(item);\n }\n service.add(item).$promise\n .then(function (data) {\n $location.url(url);\n }, function (data) {\n // this is an error\n $scope.message = data.message;\n $scope.saving = false;\n });\n\n };\n\n $scope.hasRole = app.hasRole;\n\n $scope.close = function (item) {\n item.Status = 'CLOSED';\n $scope.save(item);\n };\n\n $scope.edit = function (item) {\n service.edit($scope.item).$promise.then(function (data) {\n $location.url(url);\n });\n };\n\n $scope.showImage = function (img) {\n $scope.CurrentImage = img;\n $scope.show_modal = true;\n };\n\n $scope.closeModal = function () {\n $scope.show_modal = false;\n };\n\n function loadWithImage() {\n var deferred = $q.defer();\n setTimeout(function () {\n $scope.itemWithImages = service.getWithImages($stateParams.id);\n $scope.itemWithImages.$promise.then(function () {\n $scope.imagesLoaded = true;\n deferred.resolve($scope.itemWithImages);\n });\n }, 1000);\n return deferred.$promise;\n }\n\n function init() {\n $scope.isReady = false;\n locations.$promise.then(function () {\n if ($stateParams.id !== 0 && $stateParams.id !== undefined) {\n $scope.imagesLoaded = false;\n $scope.item = service.getItem($stateParams.id);\n $scope.item.$promise.then(function () {\n console.log($scope.item);\n $scope.isReady = true;\n $scope.item.EventDate = $filter('date')(new Date($scope.item.EventDate), 'yyyy-MM-dd');\n loadWithImage();\n });\n } else {\n $scope.isReady = true;\n }\n });\n\n\n }\n\n init();\n }\n ]);\n","angular\n .module('ustreet-app')\n .controller('IncidentManagementCtrl', ['$scope', '$location', 'incidentSvc', function ($scope, $location, service) {\n $scope.showClosed = false;\n $scope.hasRole = app.hasRole;\n $scope.search = '';\n $scope.items = [];\n $scope.filteredList = [];\n\n $scope.searchIncidents = function () {\n if ($scope.search === '') {\n $scope.filteredList = $scope.items;\n } else {\n $scope.filteredList = $scope.items.filter(function (incident) {\n return incident.LocationName.includes($scope.search) ||\n (incident.CustomerFirstName !== null && incident.CustomerFirstName.includes($scope.search)) ||\n (incident.CustomerLastName !== null && incident.CustomerLastName.includes($scope.search));\n });\n }\n };\n\n $scope.init = function () {\n $scope.ready = false;\n $scope.items = service.getList({\n showClosed: $scope.showClosed\n });\n\n $scope.items.$promise.then(function () {\n var today = new Date();\n for (var i = 0; i < $scope.items.length; i++) {\n var item = $scope.items[i];\n if (item.ClosedDate !== undefined && item.ClosedDate !== null) {\n var range = moment(item.EventDate).twix(moment(item.ClosedDate));\n item.DateDiff = range.humanizeLength();\n }\n }\n $scope.searchIncidents();\n $scope.ready = true;\n });\n };\n\n $scope.deleteIssue = function (id) {\n if (window.confirm('Are you sure you want to delete this?', 'You will not be able to undo deleted incidents.')) {\n $scope.ready = false;\n app.scrollTop();\n var promise = service.deleteItem(id);\n promise.$promise.then(function (data) {\n $scope.init();\n });\n }\n };\n\n $scope.init();\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('TicketHistoryCtrl', ['$scope', '$location', '$stateParams', 'ticketTypeSvc', 'serviceHelperSvc',\n function ($scope, $location, $stateParams, ticketTypeSvc, serviceHelperSvc) {\n\n function init(){\n $scope.ticketType = ticketTypeSvc.getItem($stateParams.id);\n $scope.list = serviceHelperSvc.TicketHistory.get({ id: $stateParams.id });\n $scope.list.$promise.then(function(){\n $scope.ready = true;\n });\n }\n if ($stateParams.id !== undefined) {\n init();\n }\n\n $scope.ConfirmPullBack = function(issue){\n $scope.currentIssue = issue;\n $scope.show_ticket_pull_back_modal = true;\n };\n\n $scope.CloseModal = function () {\n $scope.show_ticket_pull_back_modal = false;\n };\n\n $scope.hasZeroBalance = function(history){\n if(history === undefined || history.length == 0){\n return false;\n }\n\n var lastEntry = history[history.length - 1];\n return ((lastEntry.EndNumber - lastEntry.ClosingNumber) == 0);\n };\n\n\n $scope.ShowIssuedTicketStatus = function(issue){\n $scope.show_issued_ticket_history_dialog = true;\n $scope.issue_history_ready = false;\n $scope.currentIssue = issue;\n serviceHelperSvc\n .IssuedTicketHistory\n .get({id: issue.Id})\n .$promise\n .then(function(data){\n $scope.IssuedHistory = data.IssuedTicketHistory;\n $scope.DeletedTickets = data.DeletedTicketHistory;\n $scope.issue_history_ready = true;\n });\n };\n\n $scope.filterZeroOperations = function(item){\n return ($scope.showZero || item.Tickets > 0);\n };\n\n $scope.PullIssueBack = function(){\n \t var issue = $scope.currentIssue;\n var result = serviceHelperSvc.PullIssueBack.get({issuedTicketId: issue.Id});\n result.$promise.then(function(data){\n $scope.message = 'Your ticket has been pulled back successfully.';\n init();\n $scope.show_ticket_pull_back_modal = false;\n });\n };\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('TicketInventoryCtrl', ['$scope', '$location', '$stateParams', 'ticketInventorySvc', 'ticketTypeSvc', 'userSvc', 'locationSvc',\n function ($scope, $location, $stateParams, svc, ticketTypeSvc, userSvc, locationSvc) {\n\n $scope.ticketTypes = ticketTypeSvc.getActiveList();\n\n\n $scope.add = function (item) {\n if (parseInt(item.EndNumber) > parseInt(item.StartNumber)) {\n\n\n var prm;\n\n if ($scope.isEdit) {\n prm = svc.updateReceiveDetail(item).$promise;\n } else {\n prm = svc.add(item).$promise;\n }\n prm\n .then(function () {\n $location.url('/Inventory');\n }, function (response) {\n $scope.Warning = response.data.message;\n });\n } else {\n $scope.Warning = \"End number cannot be less than start number.\";\n }\n\n };\n\n if ($stateParams.id !== undefined) {\n $scope.isEdit = true;\n $scope.users = userSvc.getList();\n $scope.receiveDetail = svc.getReceiveDetail($stateParams.id);\n\n $scope.locations = locationSvc.getActiveLocations();\n\n $scope.receiveDetail.$promise.then(function () {\n $scope.item = $scope.receiveDetail;\n console.log($scope.receiveDetail);\n });\n }\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('TicketInventoryIssueCtrl', ['$scope', '$location', '$stateParams', 'ticketInventorySvc', 'ticketTypeSvc', 'userSvc', 'issuedTicketSvc', 'locationSvc',\n function ($scope, $location, $stateParams, svc, ticketTypeSvc, userSvc, issuedTicketSvc, locationSvc) {\n\n $scope.ticketTypes = ticketTypeSvc.getActiveList();\n\n if ($stateParams.id !== undefined) {\n $scope.users = userSvc.getList();\n $scope.inventory = svc.getItem($stateParams.id);\n\n $scope.locations = locationSvc.getActiveLocations();\n\n $scope.inventory.$promise.then(function () {\n $scope.item = {\n IssuedTicketId: $scope.inventory.Id,\n StartNumber: $scope.inventory.ClosingNumber,\n TicketTypeId: $scope.inventory.TicketTypeId\n };\n console.log($scope.item);\n });\n\n $scope.issue = function (item) {\n issuedTicketSvc.add(item).$promise\n .then(function (data) {\n $location.url('/Inventory');\n });\n };\n }\n\n }]);\n","angular\n .module('ustreet-app')\n .controller(\n 'TicketInventoryListCtrl', ['$scope', 'ticketInventorySvc',\n function ($scope, svc) {\n $scope.list = [];\n\n $scope.hasRole = app.hasRole;\n\n this.init = function () {\n $scope.list = svc.getList();\n $scope.list.$promise\n .then(\n function (data) {\n // calculate the sum\n $scope.total_tickets = 0;\n for (var i = 0; i < $scope.list.length; i++) {\n $scope.total_tickets += $scope.list[i].Remaining;\n }\n\n $scope.ready = true;\n }\n );\n };\n\n this.init();\n }\n ]\n);\n","angular\n .module('ustreet-app')\n .controller('TicketTransferCtrl', ['$scope', '$location', 'userSvc', '$stateParams', 'ticketTypeSvc', 'serviceHelperSvc', 'locationSvc',\n function ($scope, $location, userSvc, $stateParams, ticketTypeSvc, serviceHelperSvc, locationSvc) {\n $scope.locations = locationSvc.getLocations();\n if ($stateParams.id !== undefined) {\n\n\n $scope.item = serviceHelperSvc.IssuedTicket.get({ id: $stateParams.id });\n $scope.item\n .$promise\n .then(function () {\n $scope.ticketType = ticketTypeSvc.getItem($scope.item.TicketTypeId);\n });\n $scope.users = userSvc.getList();\n }\n\n $scope.ApplyTransfer = function () {\n var transfer = serviceHelperSvc.IssuedTicket.update($scope.item);\n transfer.$promise.then(function () {\n $location.path('/Inventory');\n });\n };\n\n }]);","angular\n .module('ustreet-app')\n .controller(\n 'MessagesCtrl', ['$scope', 'userSvc', 'serviceHelperSvc','roleSvc',\n function ($scope, userSvc, serviceHelperSvc, roleSvc) {\n $scope.list = [];\n $scope.notfy = undefined;\n $scope.confirmation = undefined;\n $scope.roles = roleSvc.getList();\n\n $scope.ChangeParams = function(){\n $scope.list = userSvc.getByRole($scope.role);\n };\n\n $scope.toggleSelected = function () {\n for (var i = 0; i < $scope.list.length; i++) {\n $scope.list[i].IsSelected = $scope.toggle;\n }\n };\n\n $scope.sendMessage = function () {\n var users = [];\n\n for (var i = 0; i < $scope.list.length; i++) {\n if ($scope.list[i].IsSelected) {\n users.push($scope.list[i].PhoneNumber);\n }\n }\n\n if (users.length === 0) {\n $scope.notify = (\"Please select a few users before you click send\");\n return;\n }\n\n var message = {\n Message: $scope.message.Text,\n Numbers: users\n };\n\n var onSuccess = function (data) {\n if(angular.isDefined(data.Numbers)){\n $scope.confirmation = \"Message sent for \" + data.Numbers.length + ' Number(s)';\n }else{\n $scope.notify = \"Error sending - Contact admin\";\n }\n\n };\n\n var onFailure = function () {\n $scope.notify = \"Error sending\";\n };\n\n var promise = serviceHelperSvc.Message.send(message).$promise;\n promise.then(onSuccess, onFailure);\n };\n\n\n }\n ]\n);\n","angular\n .module('ustreet-app')\n .controller('AuditReportCtrl', ['$location', '$scope', '$window', 'userSvc', 'serviceHelperSvc', '$filter',\n function ($location, $scope, $window, userSvc, serviceHelperSvc, $filter) {\n $scope.hasRole = app.hasRole;\n\n $scope.loading = true;\n\n $scope.filter = {\n startDate: $location.search().startDate,\n lastDate: $location.search().endDate\n };\n\n $scope.ParamChanged = function () {\n $scope.loading = true;\n\n if ($scope.filter.startDate !== undefined) {\n $location.search('startDate', $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'));\n $location.search('endDate', $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'));\n }\n\n\n $scope.data = serviceHelperSvc.UnAuditedReports.get({\n startDate: $location.search().startDate,\n endDate: $location.search().endDate\n });\n\n $scope.data.$promise.then(function (data) {\n $scope.total = data.reduce(function (s, f) {\n return s + f.CashSales;\n }, 0);\n $scope.loading = false;\n }).error(function (error) {\n $scope.loading = false;\n });\n\n\n };\n\n setTimeout(function() {\n $scope.ParamChanged();\n }, 20);\n\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('CashBalanceReportCtrl', ['$scope', '$window', 'userSvc', 'serviceHelperSvc', '$filter', function ($scope, $window, userSvc, serviceHelperSvc, $filter) {\n $scope.hasRole = app.hasRole;\n\n $scope.toMonth = function (monthNumber) { //1 = January\n var monthNames = ['January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'];\n return monthNames[monthNumber - 1];\n };\n\n $scope.ParamChanged = function () {\n $scope.loading = true;\n $scope.data = serviceHelperSvc.CashReconciliationSummary.get({startDate: $filter('date')($scope.filter.startDate, 'MM-dd-yyyy')});\n\n $scope.data.$promise.then(function (data) {\n var subtotal = 0;\n for (var i = 0; i < $scope.data.length; i++) {\n if ($scope.data[i].TransactionType.indexOf('Income') >= 0) {\n subtotal = $scope.data[i].Amount + subtotal;\n } else {\n subtotal = subtotal - $scope.data[i].Amount;\n }\n $scope.data[i].Balance = subtotal;\n }\n $scope.loading = false;\n });\n };\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('EmployeeReportCtrl', ['$location', '$scope', '$window', 'userSvc', 'serviceHelperSvc', '$filter',\n function ($location, $scope, $window, userSvc, serviceHelperSvc, $filter) {\n $scope.hasRole = app.hasRole;\n\n $scope.Employees = userSvc.getList();\n\n $scope.filter = {\n startDate: $location.search().startDate,\n lastDate: $location.search().endDate,\n employee: $location.search().employee\n };\n\n $scope.convertDate = function (date) {\n return new Date(date);\n };\n $scope.OnEmployeeChanged = function () {\n\n if ($scope.filter.employee) {\n $location.search('startDate', $filter('date')($scope.filter.startDate, 'MM-dd-yyyy'));\n $location.search('endDate', $filter('date')($scope.filter.lastDate, 'MM-dd-yyyy'));\n $location.search('employee', $scope.filter.employee);\n }\n if ($location.search().employee) {\n $scope.loading = true;\n $scope.EmployeeRecords = serviceHelperSvc\n .EmployeeReport\n .get({\n startDate: $location.search().startDate,\n endDate: $location.search().endDate,\n employeeId: $location.search().employee\n });\n $scope.EmployeeRecords.$promise.then(function (data) {\n $scope.loading = false;\n }).error(function (data) {\n $scope.loading = false;\n });\n\n }\n };\n\n\n $scope.ExportExcel = function () {\n\n\n var filter = {\n startDate: $location.search().startDate,\n endDate: $location.search().endDate,\n employeeId: $location.search().employee\n };\n var param = jQuery.param(filter);\n var url = config.apiurl + 'api/Employee/Excel?' + param;\n $window.open(url, \"_BLANK\");\n };\n\n\n setTimeout(function () {\n $scope.OnEmployeeChanged();\n }, 100);\n }]);\n","angular\n .module('ustreet-app')\n .controller('LocationReportCtrl', ['$scope', 'locationReportSvc', 'serviceHelperSvc', '$stateParams', '$filter', function($scope, locationReportSvc, serviceHelperSvc, $stateParams, $filter) {\n\n $scope.isReady = false;\n\n $scope.SendEmail = function() {\n serviceHelperSvc.Message.sendEmail().$promise.then(function() {\n alert(\"Message Sent\");\n });\n };\n\n if ($stateParams.id !== undefined) {\n $scope.isReady = false;\n $scope.detail = locationReportSvc.getItem($stateParams.id);\n\n $scope.detail.$promise.then(function() {\n\n // prep the chart here.\n var values = [];\n $scope.ticks = [];\n if ($scope.detail.Revenue !== undefined) {\n\n for (var i = 0; i < $scope.detail.Revenue.length && i < 20; i++) {\n var rev = $scope.detail.Revenue[i];\n values.push([new Date($filter('date')(rev.ReportDate, 'MM-dd-yyyy')), rev.Revenue]);\n }\n\n $scope.chartdata = [{\n \"key\": \"Daily Income\",\n \"values\": values\n }];\n var xtra = $scope.chartdata;\n\n $scope.isReady = true;\n }\n });\n } else {\n $scope.locations = locationReportSvc.getList();\n $scope.locations.$promise.then(function() {\n for (var i = 0; i < $scope.locations.length; i++) {\n var loc = $scope.locations[i];\n loc.chart = {\n \"title\": \"Revenue\",\n \"subtitle\": \"# of Tickets\",\n \"ranges\": [loc.MinTicketCount, loc.MinTicketCount * 2, loc.MinTicketCount * 4],\n \"measures\": [loc.RemainingTicketCount],\n \"markers\": [loc.RemainingTicketCount]\n };\n }\n $scope.filterChanged();\n $scope.isReady = true;\n });\n\n }\n\n $scope.filterChanged = function() {\n $scope.filtered_locations = [];\n\n for (var i = 0; i < $scope.locations.length; i++) {\n if ((!$scope.ShowNonReporting && $scope.locations[i].StartedReporting) || $scope.ShowNonReporting) {\n $scope.filtered_locations.push($scope.locations[i]);\n }\n }\n\n };\n\n $scope.xaxisticks = function() {\n return $scope.ticks;\n };\n\n $scope.xAxisTickFormat_Date_Format = function() {\n return function(d) {\n return d3.time.format('%B %d')(new Date(d));\n };\n };\n\n}]);\n","angular\n .module('ustreet-app')\n .controller('ReportCtrl', ['$scope', function ($scope) {\n $scope.hasRole = app.hasRole;\n}]);\n","angular\n .module('ustreet-app')\n .controller('TicketReportCtrl', ['$scope', 'serviceHelperSvc', 'dailyReportSvc', 'ticketTypeSvc', 'paymentTypeSvc', 'userSvc', 'expenseTypeSvc', 'adjustmentTypeSvc',\n function ($scope, serviceHelperSvc, dailyReportSvc, ticketTypeSvc, paymentTypeSvc, userSvc, expenseTypeSvc, adjustmentTypeSvc) {\n $scope.hasRole = app.hasRole;\n\n $scope.data = [];\n $scope.showInactiveTicketTypes = false;\n $scope.showInactiveLocations = false;\n\n\n $scope.ApplyFilters = function () {\n $scope.list = $scope.data.filter(function (row) {\n return ($scope.showInactiveLocations || row.LocationIsActive) &&\n ($scope.showInactiveTicketTypes || row.TicketTypeIsActive);\n });\n };\n\n\n $scope.loading = true;\n $scope.data = serviceHelperSvc.StaleTicketList.get();\n $scope.data.$promise.then(function (data) {\n $scope.loading = false;\n $scope.ApplyFilters();\n }).catch(function (error) {\n console.log('There was some error');\n console.log(error);\n });\n\n $scope.ShowDailyReportModal = function (id) {\n\n $scope.current = dailyReportSvc.getItem(id).then(\n function (response) {\n $scope.current = response;\n angular.forEach(response.Roasters, function (r) {\n r.StartTime = new Date(r.StartTime);\n r.EndTime = new Date(r.EndTime);\n });\n $scope.viewOnly = ($scope.current.Status !== 'Draft');\n $scope.show_daily_report_modal = true;\n //$location.hash('viewStart');\n $scope.ready = true;\n\n }\n );\n };\n\n\n //This section is important for properly rendering the modal\n $scope.TicketTypes = ticketTypeSvc.getList();\n $scope.Employees = userSvc.getList();\n $scope.PaymentTypes = paymentTypeSvc.getList();\n $scope.ExpenseTypes = expenseTypeSvc.getList();\n $scope.AdjustmentTypes = adjustmentTypeSvc.getList();\n //end of preparation for the modal.\n\n\n }]);\n","\n\n\n\nangular\n .module('ustreet-app')\n .controller('PaymentCategoryCtrl', ['$scope', '$location', '$stateParams', 'paymentCategorySvc',\nfunction ($scope, $location, $stateParams, paymentCategorySvc) {\n app.bindCrud($location, $scope, $stateParams, paymentCategorySvc, '/PaymentCategory');\n}]);\n\n\n\n","angular\n .module('ustreet-app')\n .controller(\n 'PaymentCategoriesCtrl', ['$scope', 'paymentCategorySvc',\n function ($scope, paymentCategorySvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = paymentCategorySvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller('ProjectCtrl', ['$scope', '$location', '$stateParams', 'projectSvc',\n function ($scope, $location, $stateParams, projectSvc) {\n app.bindCrud($location, $scope, $stateParams, projectSvc, '/Project');\n }]);\n","angular\n .module('ustreet-app')\n .controller(\n 'ProjectHistoryCtrl', ['$scope', 'paymentSvc', 'paymentCategorySvc', 'projectSvc', '$stateParams',\n function ($scope, paymentSvc, paymentCategorySvc, projectSvc, $stateParams) {\n $scope.history = projectSvc.getHistory($stateParams.id);\n $scope.history.$promise.then(function(data){\n $scope.balance = 0;\n for(var i = 0; i < $scope.history.length; i++){\n var hist = $scope.history[i];\n if(hist.ExpenseCategory.IsPayout){\n $scope.balance = $scope.balance + hist.Amount;\n }else if(hist.ExpenseCategory.IsPayout == false){\n $scope.balance = $scope.balance - hist.Amount;\n }\n hist.Balance = $scope.balance;\n }\n });\n\n $scope.project = projectSvc.getItem($stateParams.id);\n }\n ]\n);\n","angular\n .module('ustreet-app')\n .controller(\n 'ProjectsCtrl', ['$scope', 'projectSvc',\n function ($scope, paymentCategorySvc) {\n $scope.list = [];\n\n $scope.ApplyFilter = function () {\n if ($scope.ShowAll) {\n $scope.list = $scope.fullData;\n } else {\n $scope.list = $scope.fullData.filter(function (r) {\n return r.IsActive === true;\n });\n }\n\n };\n this.init = function () {\n $scope.fullData = paymentCategorySvc.getList();\n $scope.fullData.$promise.then(function () {\n $scope.ApplyFilter();\n });\n\n };\n\n this.init();\n $scope.ShowAll = false;\n\n }\n ]\n );","angular\n .module('ustreet-app')\n .controller('EmployeePreferenceCtrl', ['$scope', 'serviceHelperSvc', '$stateParams', '$filter', function ($scope, serviceHelperSvc, $stateParams, $filter) {\n\n $scope.isReady = false;\n \n $scope.list = serviceHelperSvc.UserList.query();\n $scope.list.$promise.then(function(data){\n $scope.isReady = true;\n });\n \n}]);","angular\n .module('ustreet-app')\n .controller('MyScheduleCtrl', ['$scope', 'scheduleService', '$stateParams', '$filter', function ($scope, scheduleService, $stateParams, $filter) {\n\n var schedule = scheduleService.MySchedule.get();\n schedule.$promise.then(function (data) {\n $scope.rows = data.rows;\n $scope.prows = data.prows;\n });\n\n}]);\n","angular\n .module('ustreet-app')\n .controller('ScheduleCreateCtrl', ['$scope', 'scheduleService', '$stateParams', '$filter', function ($scope, scheduleService, $stateParams, $filter) {\n\n $scope.defaultLocationStartTime = new moment({hour: 5});\n\n $scope.GetDateObject = function(d){\n return Date.toLocalDate(d);\n };\n\n $scope.clearMessage = function(){\n $scope.message = undefined;\n };\n\n\n function initDatesForDays(days){\n angular.forEach(days, function(d){\n d.StartTime = Date.toLocalDate(d.StartTime);\n });\n }\n\n function initAllDates(){\n angular.forEach($scope.employees, function(e){\n initDatesForDays(e.Day1);\n initDatesForDays(e.Day2);\n initDatesForDays(e.Day3);\n initDatesForDays(e.Day4);\n initDatesForDays(e.Day5);\n initDatesForDays(e.Day6);\n initDatesForDays(e.Day7);\n });\n }\n\n //load things for the view mode\n $scope.weeks = scheduleService.Weeks.get();\n\n $scope.LoadWeek = function(){\n $scope.ready = false;\n $scope.loading = true;\n scheduleService.ByEmployee.get({id: $scope.selected.week})\n .$promise.then(function(d){\n $scope.employees = d.employees;\n initAllDates();\n $scope.locations = d.locations;\n $scope.ready = true;\n $scope.loading = fasle;\n });\n };\n\n $scope.days = [];\n $scope.days[0] = 'Sun';\n $scope.days[1] = 'Mon';\n $scope.days[2] = 'Tue';\n $scope.days[3] = 'Wed';\n $scope.days[4] = 'Thu';\n $scope.days[5] = 'Fri';\n $scope.days[6] = 'Sat';\n\n\n $scope.CreateOpen = function(){\n $scope.clearMessage();\n $scope._date = $filter('date')(Date.toLocalDate($scope.WeekOf), 'MM-dd-yyyy');\n var schedule = scheduleService.Schedule.create({date: $scope._date});\n\n\n\n schedule.$promise.then(function(data){\n $scope.weekly = data;\n scheduleService.ByEmployee.get({id: data.Id})\n .$promise.then(function(d){\n $scope.employees = d.employees;\n initAllDates();\n\n $scope.locations = d.locations;\n\n $scope.Id = d.Id;\n\n //index locations\n $scope.locationIndex = [];\n for(var i=0; i<$scope.locations.length; i++){\n var loc = $scope.locations[i];\n $scope.locationIndex[loc.Id] = loc;\n }\n });\n });\n\n };\n\n $scope.Finalize = function(){\n var finalize = scheduleService.Finalizer.finalize({id:$scope.weekly.Id, status: 'Final'});\n finalize.$promise.then(function(data){\n $scope.message = 'Schedule has been finalized';\n $scope.weekly.status = 'Final';\n });\n };\n\n $scope.Save = function(){\n var save = scheduleService.Schedule.save({WeekOf:$scope._date, DeleteList: $scope.delete_list, Details: $scope.employees, Id : $scope.Id});\n save.$promise.then(function(d){\n $scope.message = d.message;\n });\n };\n\n /***\n Start of interactivity region\n Code that follows here is for interactive features like dragging and dropping etc.\n */\n $scope.OnDragStart = function(data, emp, day, index){\n $scope.dLocation = data;\n $scope.dragged_employee = emp;\n $scope.dragged_day = day;\n $scope.dragged_index = index;\n\n };\n\n $scope.OnDragSuccess = function(data){\n $scope.dLocation = undefined;\n };\n\n $scope.OnDropSuccess = function(loc, event, emp, field, index){\n $scope.clearMessage();\n\n if(_.isUndefined(emp[field]) || _.isNull(emp[field])){\n emp[field] = [];\n }\n\n if(_.isNull(emp.days)){\n emp.days = 0;\n }\n\n if(!loc.WorkingDays.contains(index) || !emp.WorkingDays.contains(index)){\n return;\n }\n // check if this location works on the date droped\n if(loc.WorkingDays.contains(index)){\n //check for duplicate\n for(var i = 0; i < emp[field].length; i++){\n\n if(emp[field][i].Id === loc.Id){\n return;\n }\n }\n loc = angular.copy(loc);\n\n\n var workingDayDetail= _.findWhere(loc.WorkingDayDetails, {'WorkingDayId' : index});\n var locationWorkingTime = Date.parse($filter('date')(Date.toLocalDate($scope.weekly.Dates[index]), 'MMMM dd, yyyy') + ' ' + $filter('date')(Date.toLocalDate(workingDayDetail.StartTime),'hh:mm a'));\n //var employeeWorkingTime = Date.toLocalDate(_.findWhere(emp.WorkingDayDetails, {'WorkingDayId' : index}).StartTime);\n loc.StartTime = Date.toLocalDate(locationWorkingTime);\n\n loc.Repeats = !$scope.norepeat;\n emp[field].push(loc);\n\n var location = $scope.locationIndex[loc.Id];\n // register this too\n if(_.isNull(location.emps)){\n location.emps = [];\n }\n\n if(_.isNull(location.emps[index]) || _.isUndefined( location.emps[index] )){\n location.emps[index] = 0;\n }\n\n if(_.isNull(emp.locs) || _.isUndefined( emp.locs )){\n emp.locs = [];\n }\n\n if(_.isNull(emp.locs[index]) || _.isUndefined(emp.locs[index]) ){\n emp.locs[index] = [];\n }\n\n emp.locs[index].push(loc);\n\n location.emps[index]++;\n if(emp.locs[index].length === 1 ){\n emp.days ++;\n }\n }\n $scope.dLocation = undefined;\n };\n\n $scope.OnRemoveDropSuccess = function(loc){\n $scope.clearMessage();\n\n if($scope.dragged_employee === undefined || $scope.dragged_day === undefined ) {\n return;\n }\n\n if(_.isUndefined($scope.delete_list)){\n $scope.delete_list = [];\n }\n\n if(loc.WeeklyScheduleId !== undefined){\n $scope.delete_list.push( loc.WeeklyScheduleId );\n }\n\n var emp = $scope.dragged_employee;\n var index = $scope.dragged_index;\n var days = $scope.dragged_day;\n\n $scope.locationIndex[loc.Id].emps[index]--;\n days.splice(0,1);\n emp.days --;\n\n };\n\n $scope.StartTimeTooltip = function(locSchedule, employee, dayIndex){\n // find location's start time\n var location = $scope.locationIndex[locSchedule.Id];\n\n\n var locationDayPreference = _.findWhere(location.WorkingDayDetails, {'WorkingDayId': dayIndex});\n if(locationDayPreference == undefined){\n return;\n }\n\n var locationStartTime = locationDayPreference.StartTime;\n\n var employeePreferanceForDate = _.findWhere(employee.WorkingDayDetails, {'WorkingDayId': dayIndex});\n // find employee's start time\n\n var employeeStartTime = (employeePreferanceForDate != undefined)? employeePreferanceForDate.StartTime : null;\n\n var employeeStartText = ((employeeStartTime == null) ? 'un specified' : $filter('date')(Date.toLocalDate(employeeStartTime), 'hh:mm a'));\n var result = 'Employee wants to start : ' + employeeStartText + '\\n';\n result = result + 'Location Starts at : ' + $filter('date')(Date.toLocalDate(locationStartTime), 'hh:mm a') + '\\n';\n result = result + 'Current schedule : ' + $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'hh:mm a') + '\\n' ;\n\n return result;\n };\n\n $scope.StartTimeValid = function(locSchedule, employee, dayIndex){\n // find location's start time\n\n var location = $scope.locationIndex[locSchedule.Id];\n\n var locationDaySetting = _.findWhere(location.WorkingDayDetails, {'WorkingDayId': dayIndex});\n if(!locationDaySetting){\n return false;\n }\n\n var locationStartTime = Date.toLocalDate(locationDaySetting.StartTime);\n // normalize this date the hard way. god will defintely forgive you today.\n var locStartTimeString = $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'MMMM dd, yyyy') + ' ' + $filter('date')(locationStartTime, 'hh:mm a') ;\n\n locationStartTime = Date.parse(locStartTimeString);\n // find employee's start time\n var employeeWorkingDay = _.findWhere(employee.WorkingDayDetails, { 'WorkingDayId': dayIndex });\n\n var employeeStartTime = (employeeWorkingDay)? employeeWorkingDay.StartTime : locSchedule.StartTime;\n\n var employeeStartTimeString = $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'MMMM dd, yyyy') + ' ' + $filter('date')(Date.toLocalDate(employeeStartTime), 'hh:mm a') ;\n employeeStartTime = Date.parse(employeeStartTimeString);\n\n var currentStartTime = $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'MMMM dd, yyyy hh:mm a');\n currentStartTime = Date.parse(currentStartTime);\n\n if(employeeStartTime > currentStartTime || locationStartTime > currentStartTime){\n return false;\n }\n return true;\n };\n\n $scope.ValidateAllAssignments = function(assignments){\n if( assignments === undefined || assignments.length <= 1){\n return false;\n }\n var timeDiff = (Date.toLocalDate(assignments[0].StartTime) - Date.toLocalDate(assignments[1].StartTime)) / 36e5;\n\n if(timeDiff < 4){\n return true;\n }\n return false;\n };\n\n /***\n End of interactive region.\n */\n\n // mobile region starts here.\n\n $scope.OnLocationChanged = function(){\n var schedule = scheduleService.MyLocation.get( {locationId: $scope.Selected.Location, weeklyScheduleId: $scope.weekly.Id});\n schedule.$promise.then(function(data){\n $scope.rows = data.rows;\n angular.forEach(data.rows, function(d){\n d.WorkDay = $filter('date')(d.StartTime, 'dd MMM, yy');\n });\n $scope.dailySchedules = _.groupBy(data.rows, 'WorkDay');\n });\n };\n\n $scope.OnEmployeeChanged = function(){\n //var schedule = scheduleService.MySchedule.GetDetails( $scope.Selected.Employee, $scope.weekly.Id );\n var schedule = scheduleService.MyEmployee.get( {userId: $scope.Selected.Employee, weeklyScheduleId: $scope.weekly.Id});\n schedule.$promise.then(function(data){\n $scope.rows = data.rows;\n angular.forEach(data.rows, function(d){\n d.WorkDay = $filter('date')(d.StartTime, 'dd MMM, yy');\n });\n $scope.dailySchedules = _.groupBy(data.rows, 'WorkDay');\n });\n\n };\n\n // mobile region ends here\n\n}]);\n\n\n$('.ui.popup')\n .popup()\n;\n","angular\n .module('ustreet-app')\n .controller('ScheduleViewCtrl', ['$scope', 'scheduleService', '$stateParams', '$filter', function ($scope, scheduleService, $stateParams, $filter) {\n\n $scope.GetDateObject = function (d) {\n return Date.toLocalDate(d);\n };\n\n $scope.clearMessage = function () {\n $scope.message = undefined;\n };\n\n\n\n\n function initAllDates() {\n angular.forEach($scope.employees, function (e) {\n $.extend(e, EmployeeScheduleModel);\n e.init();\n });\n }\n\n //load things for the view mode\n $scope.weeks = scheduleService.Weeks.get();\n\n $scope.LoadWeek = function () {\n scheduleService.ByEmployee.get({id: $scope.selected.week})\n .$promise.then(function (d) {\n $scope.employees = d.employees;\n initAllDates();\n $scope.locations = d.locations;\n });\n };\n\n $scope.days = [];\n $scope.days[0] = 'Sun';\n $scope.days[1] = 'Mon';\n $scope.days[2] = 'Tue';\n $scope.days[3] = 'Wed';\n $scope.days[4] = 'Thu';\n $scope.days[5] = 'Fri';\n $scope.days[6] = 'Sat';\n\n\n $scope.CreateOpen = function () {\n $scope.clearMessage();\n $scope._date = $filter('date')(Date.toLocalDate($scope.WeekOf), 'MM-dd-yyyy');\n var schedule = scheduleService.Schedule.create({date: $scope._date});\n\n\n schedule.$promise.then(function (data) {\n $scope.weekly = data;\n scheduleService.ByEmployee.get({id: data.Id})\n .$promise.then(function (d) {\n $scope.employees = d.employees;\n initAllDates();\n\n $scope.locations = d.locations;\n\n $scope.Id = d.Id;\n\n //index locations\n $scope.locationIndex = [];\n for (var i = 0; i < $scope.locations.length; i++) {\n var loc = $scope.locations[i];\n $scope.locationIndex[loc.Id] = loc;\n }\n });\n });\n\n };\n\n $scope.Finalize = function () {\n var finalize = scheduleService.Finalizer.finalize({id: $scope.weekly.Id, status: 'Final'});\n finalize.$promise.then(function (data) {\n $scope.message = 'Schedule has been finalized';\n $scope.weekly.status = 'Final';\n });\n };\n\n $scope.Save = function () {\n var save = scheduleService.Schedule.save({\n WeekOf: $scope._date,\n DeleteList: $scope.delete_list,\n Details: $scope.employees,\n Id: $scope.Id\n });\n save.$promise.then(function (d) {\n $scope.message = d.message;\n });\n };\n\n /***\n Start of interactivity region\n Code that follows here is for interactive features like dragging and dropping etc.\n */\n $scope.OnDragStart = function (data, emp, day, index) {\n $scope.dLocation = data;\n $scope.dragged_employee = emp;\n $scope.dragged_day = day;\n $scope.dragged_index = index;\n\n };\n\n $scope.OnDragSuccess = function (data) {\n $scope.dLocation = undefined;\n };\n\n $scope.OnDropSuccess = function (loc, event, emp, field, index) {\n $scope.clearMessage();\n\n if (_.isUndefined(emp[field]) || _.isNull(emp[field])) {\n emp[field] = [];\n }\n\n if (_.isNull(emp.days)) {\n emp.days = 0;\n }\n\n if (!loc.WorkingDays.contains(index) || !emp.WorkingDays.contains(index)) {\n return;\n }\n // check if this location works on the date droped\n if (loc.WorkingDays.contains(index)) {\n //check for duplicate\n for (var i = 0; i < emp[field].length; i++) {\n\n if (emp[field][i].Id === loc.Id) {\n return;\n }\n }\n loc = angular.copy(loc);\n\n\n var workingDayDetail = _.findWhere(loc.WorkingDayDetails, {'WorkingDayId': index});\n var locationWorkingTime = Date.parse($filter('date')(Date.toLocalDate($scope.weekly.Dates[index]), 'MMMM dd, yyyy') + ' ' + $filter('date')(Date.toLocalDate(workingDayDetail.StartTime), 'hh:mm a'));\n //var employeeWorkingTime = Date.toLocalDate(_.findWhere(emp.WorkingDayDetails, {'WorkingDayId' : index}).StartTime);\n loc.StartTime = Date.toLocalDate(locationWorkingTime);\n\n loc.Repeats = !$scope.norepeat;\n emp[field].push(loc);\n\n var location = $scope.locationIndex[loc.Id];\n // register this too\n if (_.isNull(location.emps)) {\n location.emps = [];\n }\n\n if (_.isNull(location.emps[index]) || _.isUndefined(location.emps[index])) {\n location.emps[index] = 0;\n }\n\n if (_.isNull(emp.locs) || _.isUndefined(emp.locs)) {\n emp.locs = [];\n }\n\n if (_.isNull(emp.locs[index]) || _.isUndefined(emp.locs[index])) {\n emp.locs[index] = [];\n }\n\n emp.locs[index].push(loc);\n\n location.emps[index]++;\n if (emp.locs[index].length === 1) {\n emp.days++;\n }\n }\n $scope.dLocation = undefined;\n };\n\n $scope.OnRemoveDropSuccess = function (loc) {\n $scope.clearMessage();\n\n if ($scope.dragged_employee === undefined || $scope.dragged_day === undefined) {\n return;\n }\n\n if (_.isUndefined($scope.delete_list)) {\n $scope.delete_list = [];\n }\n\n if (loc.WeeklyScheduleId !== undefined) {\n $scope.delete_list.push(loc.WeeklyScheduleId);\n }\n\n var emp = $scope.dragged_employee;\n var index = $scope.dragged_index;\n var days = $scope.dragged_day;\n\n $scope.locationIndex[loc.Id].emps[index]--;\n days.splice(0, 1);\n emp.days--;\n\n };\n\n $scope.StartTimeTooltip = function (locSchedule, employee, dayIndex) {\n // find location's start time\n var location = $scope.locationIndex[locSchedule.Id];\n\n var locationStartTime = _.findWhere(location.WorkingDayDetails, {'WorkingDayId': dayIndex}).StartTime;\n\n // find employee's start time\n var employeeStartTime = _.findWhere(employee.WorkingDayDetails, {'WorkingDayId': dayIndex}).StartTime;\n\n var result = 'Employee wants to start : ' + $filter('date')(Date.toLocalDate(employeeStartTime), 'hh:mm a') + '\\n';\n result = result + 'Location Starts at : ' + $filter('date')(Date.toLocalDate(locationStartTime), 'hh:mm a') + '\\n';\n result = result + 'Current schedule : ' + $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'hh:mm a') + '\\n';\n\n return result;\n };\n\n $scope.StartTimeValid = function (locSchedule, employee, dayIndex) {\n // find location's start time\n\n var location = $scope.locationIndex[locSchedule.Id];\n\n var locationStartTime = Date.toLocalDate(_.findWhere(location.WorkingDayDetails, {'WorkingDayId': dayIndex}).StartTime);\n // normalize this date the hard way. god will defintely forgive you today.\n var locStartTimeString = $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'MMMM dd, yyyy') + ' ' + $filter('date')(locationStartTime, 'hh:mm a');\n\n locationStartTime = Date.parse(locStartTimeString);\n // find employee's start time\n var employeeStartTime = _.findWhere(employee.WorkingDayDetails, {'WorkingDayId': dayIndex}).StartTime;\n\n var employeeStartTimeString = $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'MMMM dd, yyyy') + ' ' + $filter('date')(Date.toLocalDate(employeeStartTime), 'hh:mm a');\n employeeStartTime = Date.parse(employeeStartTimeString);\n\n var currentStartTime = $filter('date')(Date.toLocalDate(locSchedule.StartTime), 'MMMM dd, yyyy hh:mm a');\n currentStartTime = Date.parse(currentStartTime);\n\n if (employeeStartTime > currentStartTime || locationStartTime > currentStartTime) {\n return false;\n }\n return true;\n };\n\n $scope.ValidateAllAssignments = function (assignments) {\n if (assignments === undefined || assignments.length <= 1) {\n return false;\n }\n var timeDiff = (Date.toLocalDate(assignments[0].StartTime) - Date.toLocalDate(assignments[1].StartTime)) / 36e5;\n\n if (timeDiff < 4) {\n return true;\n }\n return false;\n };\n\n /***\n End of interactive region.\n */\n\n // mobile region starts here.\n\n $scope.OnLocationChanged = function () {\n var schedule = scheduleService.MyLocation.get({\n locationId: $scope.Selected.Location,\n weeklyScheduleId: $scope.weekly.Id\n });\n schedule.$promise.then(function (data) {\n $scope.rows = data.rows;\n angular.forEach(data.rows, function (d) {\n d.WorkDay = $filter('date')(d.StartTime, 'dd MMM, yy');\n });\n $scope.dailySchedules = _.groupBy(data.rows, 'WorkDay');\n });\n };\n\n $scope.OnEmployeeChanged = function () {\n //var schedule = scheduleService.MySchedule.GetDetails( $scope.Selected.Employee, $scope.weekly.Id );\n var schedule = scheduleService.MyEmployee.get({\n userId: $scope.Selected.Employee,\n weeklyScheduleId: $scope.weekly.Id\n });\n schedule.$promise.then(function (data) {\n $scope.rows = data.rows;\n angular.forEach(data.rows, function (d) {\n d.WorkDay = $filter('date')(d.StartTime, 'dd MMM, yy');\n });\n $scope.dailySchedules = _.groupBy(data.rows, 'WorkDay');\n });\n\n };\n\n // mobile region ends here\n\n}]);\n\n\n$('.ui.popup')\n .popup()\n;\n","\nangular\n .module('ustreet-app')\n .controller('PaymentTypeCtrl', ['$scope', '$location', '$stateParams', 'paymentTypeSvc',\n function ($scope, $location, $stateParams, paymentTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, paymentTypeSvc, '/Admin/PaymentTypes');\n }]);\n\nangular\n .module('ustreet-app')\n .controller('IncidentTypeCtrl', ['$scope', '$location', '$stateParams', 'incidentTypeSvc',\n function ($scope, $location, $stateParams, incidentTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, incidentTypeSvc, '/Admin/IncidentTypes');\n }]);\n\n\nangular\n .module('ustreet-app')\n .controller('MyScoreCtrl', ['$scope', '$location', '$stateParams', 'paymentTypeSvc',\n function ($scope, $location, $stateParams, paymentTypeSvc) {\n //bindCrud($location, $scope, $stateParams, paymentTypeSvc, '/Admin/PaymentTypes');\n }]);\n\nangular\n .module('ustreet-app')\n .controller('ExpenseTypeCtrl', ['$scope', '$location', '$stateParams', 'expenseTypeSvc',\n function ($scope, $location, $stateParams, paymentTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, paymentTypeSvc, '/Admin/ExpenseTypes');\n }]);\n\nangular\n .module('ustreet-app')\n .controller('AdjustmentTypeCtrl', ['$scope', '$location', '$stateParams', 'adjustmentTypeSvc',\n function ($scope, $location, $stateParams, paymentTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, paymentTypeSvc, '/Admin/AdjustmentTypes');\n }]);\n\nangular\n .module('ustreet-app')\n .controller('TicketTypeCtrl', ['$scope', '$location', '$stateParams', 'ticketTypeSvc',\n function ($scope, $location, $stateParams, ticketTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, ticketTypeSvc, '/Admin/TicketTypes');\n }]);\n\n\n\n\n\n\n\n","angular\n .module('ustreet-app')\n .controller(\n \"HeaderController\",\n ['$scope', '$location', 'localStorageService', 'matchmedia', 'serviceHelperSvc',\n function ($scope, $location, localStorageService, matchmedia, serviceHelperSvc) {\n\n window.match_media = matchmedia;\n\n $scope.roles = [];\n\n $scope.isActive = function (path) {\n return $location.path().indexOf(path) >= 0;\n };\n\n $scope.init = function () {\n if (app.roles === undefined) {\n app.roles = localStorageService.get('Roles');\n app.username = localStorageService.get('UserName');\n\n if (angular.isArray(app.roles) && app.roles.length > 0) {\n app.authenticated = true;\n }else {\n $scope.logOff();\n }\n }\n //;\n };\n\n $scope.logOff = function () {\n serviceHelperSvc.Logout.logOut();\n console.log(localStorageService);\n localStorageService.clearAll();\n $location.path('/Login');\n };\n\n $scope.UserName = function () {\n return app.username;\n };\n\n $scope.hasRole = function (role) {\n if (app.roles !== undefined && angular.isArray(app.roles)) {\n return (app.roles.indexOf(role) >= 0);\n }\n return false;\n };\n\n app.hasRole = $scope.hasRole;\n\n $scope.init();\n\n $scope.toggleMenu = function () {\n $('.sidebar').sidebar('setting', {dimPage: true}).sidebar(\n 'toggle');\n };\n\n $scope.isComputer = $(window).width() > 1024;\n\n }]\n);\n\n$(document).on(\n 'click', 'a.top-menu', function (e) {\n if ($(e.target).is('a')) {\n if ($(window).width() <= 1024) {\n $('.sidebar').sidebar('setting', {dimPage: true}).sidebar(\n 'toggle');\n }\n }\n }\n);\n","angular\n .module('ustreet-app')\n .controller('UsersCtrl', ['$scope', 'userSvc',\n function ($scope, locationSvc) {\n $scope.locations = [];\n \n $scope.deleteUser = function (locationId) {\n locationSvc.deleteUser(locationId).$promise\n .then(function (data, responseHeaders) {\n for (var i = $scope.locations.length - 1; i >= 0 ; i--) {\n if ($scope.locations[i].Id === locationId) {\n $scope.locations.splice(i, 1);\n break;\n }\n }\n });\n\n };\n \n $scope.toggleSelected = function(){\n \n };\n this.init = function () {\n this.loadUsers();\n };\n this.loadUsers = function () {\n $scope.users = locationSvc.getUsers();\n };\n \n this.init();\n }]);","function PayrollLineItem(pay) {\n\n $.extend(this, pay);\n\n PayrollLineItem.prototype.init = function () {\n\n };\n\n PayrollLineItem.prototype.subTotalBeforeDeductions = function () {\n return (Number(this.Rate) * Number(this.HoursWorked));\n };\n\n PayrollLineItem.prototype.totalDue = function () {\n this.due = this.subTotalBeforeDeductions();\n if (!angular.isNumber(this.Deductions)) {\n this.Deductions = 0;\n }\n\n this.actualDue = (Number(this.Rate) * Number(this.HoursWorked)) - Number(this.Deductions);\n return this.actualDue;\n };\n}\n","angular\n .module('ustreet-app')\n .factory('adjustmentTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.AdjustmentType;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('expenseTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.ExpenseType;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('locationSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Location = serviceHelper.Location;\n var LocationList = serviceHelper.LocationList;\n\n var addLocation = function (location) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Location.save(location);\n };\n var editLocation = function (location) {\n var updation = Location.update(location);\n return updation;\n };\n var getLocation = function (id) {\n return Location.get({ locationId: id });\n };\n var getLocations = function () {\n return LocationList.query();\n };\n\n var getActiveLocations = function () {\n return serviceHelper.ActiveLocationList.query();\n };\n var getLocationsFull = function () {\n return Location.query();\n };\n\n var deleteLocation = function (locationId) {\n return Location.delete({ locationId: locationId });\n };\n\n var geScheduledLocations = function () {\n return serviceHelper.ShedulableLocationList.query();\n };\n\n return {\n addLocation: addLocation,\n editLocation: editLocation,\n getActiveLocations: getActiveLocations,\n getLocation: getLocation,\n getLocations: getLocations,\n getLocationsFull: getLocationsFull,\n deleteLocation: deleteLocation,\n getScheduledLocations: geScheduledLocations\n\n };\n}]);","angular\n .module('ustreet-app')\n .factory('locationTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.LocationType;\n var add = function (paymentType) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(paymentType);\n };\n var edit = function (item) {\n return Service.update(item);\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('paymentTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.PaymentType;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('roleSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.Role;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('serviceTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.ServiceType;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","\nangular\n .module('ustreet-app')\n .factory('shiftSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.Shift;\n var add = function (paymentType) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(paymentType);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('ticketTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.TicketType;\n var add = function (paymentType) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(paymentType);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n\n var getActiveList = function () {\n return serviceHelper.ActiveTicketTypeList.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n getActiveList: getActiveList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('userSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.User;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n var getByRole = function(role){\n return serviceHelper.UserListByRole.query({role: role});\n };\n\n var getActiveUsers = function() {\n return serviceHelper.ActiveUsers.get();\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem,\n getByRole: getByRole,\n getActiveUsers: getActiveUsers\n };\n}]);","angular\n .module('ustreet-app')\n .factory('dailyReportSvc',\n ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n const Service = serviceHelper.Daily;\n\n const add = function (item) {\n //$resource.save will immediately return an object which will have $promise property.\n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n\n const edit = function (item) {\n const updation = serviceHelper.DailySubmit.put(item).$promise;\n return updation;\n };\n\n const removeTicket = function (params) {\n return serviceHelper.DailyTicketRemove.remove(params);\n };\n\n const post = function (item) {\n const updation = Service.post(item).$promise;\n return updation;\n };\n\n const getItem = function (id) {\n return serviceHelper.DailyReport.get({id: id}).$promise;\n };\n\n const create = function (period, locationId) {\n return serviceHelper.DailyCreate.get({\n date: period.Date,\n locationId: locationId,\n shiftId: period.ShiftId\n }).$promise;\n };\n\n const getListByLocation = function (locationId) {\n return serviceHelper.DailyReportList.get({id: locationId});\n };\n\n const getList = function () {\n return Service.query();\n };\n const deleteItem = function (id) {\n return serviceHelper.DailyReportDelete.delete({Id: id});\n };\n\n const open = function (id) {\n return serviceHelper.CustomDailyReport.get({locationId: id});\n };\n\n const uploadDepositSlip = function (id, upload) {\n return serviceHelper.UploadDepositSlip.update(upload);\n };\n\n return {\n add: add,\n edit: edit,\n post: post,\n getItem: getItem,\n getList: getList,\n getListByLocation: getListByLocation,\n deleteItem: deleteItem,\n create: create,\n removeTicket: removeTicket,\n open: open,\n uploadDepositSlip: uploadDepositSlip\n };\n }]);\n","angular\n .module('ustreet-app')\n .factory('incidentSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.Incident;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property.\n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({id: id});\n };\n\n var getWithImages = function (id) {\n return serviceHelper.IncidentImages.get({id: id});\n };\n\n var getList = function (params) {\n return Service.query(params);\n };\n var deleteItem = function (id) {\n return Service.delete({id: id});\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getWithImages: getWithImages,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);\n","angular\n .module('ustreet-app')\n .factory('incidentTypeSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.IncidentType;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property. \n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('issuedTicketSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.IssuedTicket;\n var add = function (item) {\n // $resource.save will immediately return an object which will have $promise property. \n // This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);","angular\n .module('ustreet-app')\n .factory('ticketInventorySvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.TicketInventory;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property.\n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({id: id});\n };\n\n var getReceiveDetail = function (id) {\n return serviceHelper.ReceiveDetail.get({id: id});\n };\n\n var updateReceiveDetail = function(item) {\n return serviceHelper.ReceiveDetail.update(item);\n };\n\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({id: id});\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n getReceiveDetail: getReceiveDetail,\n updateReceiveDetail: updateReceiveDetail,\n deleteItem: deleteItem\n };\n }]);","// shared function to simplify the definition of the crud controllers.\napp.bindCrud = function($location, $scope, $stateParams, service, url){\n $scope.add = function (item) {\n service.add(item).$promise\n .then(function (data) {\n $location.url(url);\n });\n };\n\n $scope.edit = function (item) {\n service.edit(item).$promise.then(function (data) {\n $location.url(url);\n });\n };\n\n init();\n function init() {\n if ($stateParams.id !== 0) {\n $scope.item = service.getItem($stateParams.id);\n }\n }\n};","angular\n .module('ustreet-app')\n .factory('currentUserService', ['serviceHelperSvc', function(serviceHelperSvc){\n var getCurrentUser = function(){\n return serviceHelperSvc.CurrentUser.get();\n };\n \n return {\n get: getCurrentUser\n };\n}]);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","angular\n .module('ustreet-app')\n .factory('locationReportSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var service = serviceHelper.LocationReport;\n \n var getItem = function (id) {\n return service.get({ id: id });\n };\n var getList = function () {\n return service.query();\n };\n return {\n getItem: getItem,\n getList: getList\n };\n}]);","angular\n .module('ustreet-app')\n .factory('serviceHelperSvc', ['$http', '$resource', function ($http, $resource) {\n var baseUrl = config.apiurl;\n var buildUrl = function (resourceUrl) {\n return baseUrl + resourceUrl;\n };\n\n return {\n AuthorizationToken: $resource(\n buildUrl(\"api/Token\"), null, {\n requestToken: {\n method: 'POST',\n headers: {\"Content-Type\": \"application/x-www-form-urlencoded\"}\n }\n }\n ),\n Logout: $resource(buildUrl(\"api/Logout\"), null, {logOut: {method: 'get', isArray: false}}),\n Account: $resource(buildUrl('api/Account/'), null, {register: {method: 'post'}}),\n UserRole: $resource(buildUrl('api/UserRole/:id'), null, {}),\n CurrentUser: $resource(buildUrl('api/CurrentUser'), null, {get: {isArray: false}}),\n Location: $resource(buildUrl('api/Locations/:locationId'), {locationId: '@Id'}, {'update': {method: 'PUT'}}),\n LocationList: $resource(buildUrl('api/Locations/VanillaList'), null, {'get': {method: 'Get'}}),\n ActiveLocationList: $resource(buildUrl('api/Locations/ActiveVanillaList'), null, {'get': {method: 'Get'}}),\n ShedulableLocationList: $resource(buildUrl('api/Locations/SchedulableList'), null, {'get': {method: 'Get'}}),\n StaleTicketList: $resource(buildUrl('api/StaleTickets'), null, {'get': {method: 'GET', isArray: true}}),\n\n LocationDay: $resource(\n buildUrl('api/LocationsDay/:id'), {id: '@id'}, {\n get: {method: 'GET', isArray: true},\n put: {method: 'POST'}\n }\n ),\n\n UserDay: $resource(\n buildUrl('api/UserDay/:id'), {id: '@id'}, {\n get: {method: 'GET', isArray: true},\n put: {method: 'POST'}\n }\n ),\n\n LocationType: $resource(buildUrl('api/LocationType/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n PaymentType: $resource(buildUrl('api/PaymentType/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n\n ExpenseType: $resource(buildUrl('api/ExpenseType/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n AdjustmentType: $resource(buildUrl('api/AdjustmentType/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n TicketType: $resource(buildUrl('api/TicketType/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n ActiveTicketTypeList: $resource(buildUrl('api/TicketType/ActiveList'), null, {'get': {method: 'Get'}}),\n ServiceType: $resource(buildUrl('api/Service/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n\n IncidentType: $resource(buildUrl('api/IncidentType/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n Incident: $resource(buildUrl('api/Incident/:id'), {id: '@Id'}, {\n 'update': {method: 'PUT'},\n 'delete': {method: 'DELETE'}\n }),\n DeleteIncident: $resource(buildUrl('api/Incident/Delete'), null, {'delete': {method: 'Get'}}),\n IncidentImages: $resource(buildUrl('api/Incident/Images/:id'), {id: '@Id'}, {\n 'update': {method: 'PUT'},\n 'get': {method: 'GET', async: true}\n }),\n\n Message: $resource(\n buildUrl('api/Message/Submit'), null, {\n send: {method: 'PUT'},\n sendEmail: {method: 'GET'}\n }\n ),\n\n TicketHistory: $resource(\n buildUrl('api/TicketHistory'), {id: '@Id'}, {\n get: {\n method: 'GET',\n isArray: true\n }\n }\n ),\n IssuedTicketHistory: $resource(buildUrl('api/issued/inventory/history'), {}, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n PullIssueBack: $resource(buildUrl('api/Inventory/Pullback'), {}, {get: {method: 'GET'}}),\n\n Audits: $resource(buildUrl('api/Audits'), {date: '@date'}, {get: {method: 'GET', isArray: true}}),\n SaveAudit: $resource(buildUrl('api/Audits'), {}, {post: {method: 'POST', isArray: false}}),\n\n VarianceReport: $resource(buildUrl('api/VarianceReport'), {}, {get: {method: 'GET', isArray: true}}),\n RevenueReport: $resource(buildUrl('api/RevenueReport'), {}, {get: {method: 'GET', isArray: true}}),\n DailyCollectionReport: $resource(buildUrl('api/DailyCollectionReport'), {}, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n RevenuePivot: $resource(buildUrl('api/Report/PivotRevenue', {}, {query: {method: 'GET', isArray: true}})),\n AdjustmentPivot: $resource(buildUrl('api/Report/PivotAdjustments', {}, {\n query: {\n method: 'GET',\n isArray: true\n }\n })),\n\n EmployeeReport: $resource(buildUrl('api/Employee'), {}, {get: {method: 'GET', isArray: true}}),\n\n UnAuditedReports: $resource(buildUrl('api/Report/UnAuditedPaperWorks'), {}, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n CashReconciliationSummary: $resource(buildUrl('api/Report/CashReconciliationSummary'), {}, {\n get: {\n method: 'GET',\n isArray: true\n }\n }),\n\n ReceiveDetail: $resource(buildUrl('api/ReceivedDetail/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n TicketInventory: $resource(buildUrl('api/TicketInventory/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n IssuedTicket: $resource(buildUrl('api/IssuedTicket/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n\n Shift: $resource(buildUrl('api/Shift/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n Role: $resource(buildUrl('api/Role/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n\n User: $resource(buildUrl('api/Users/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n\n UserList: $resource(buildUrl('api/Users/VanillaList'), {}, {}),\n ActiveUsers: $resource(buildUrl('api/Users/Active'), {}, {}),\n UserListByRole: $resource(buildUrl('api/Users/Active/By/Role'), {}, {}),\n\n\n Daily: $resource(buildUrl('api/Daily/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}, {'post': {method: 'POST'}}),\n DailyReport: $resource(buildUrl('api/Daily/Report/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}, {\n 'post': {\n method: 'POST'\n }\n }),\n\n UploadDepositSlip: $resource(buildUrl('api/UploadDepositSlip'),\n {id: '@Id'},\n {\n 'update': {\n method: 'POST',\n headers: {\n \"Accept\": \"application/json\"\n }\n }\n }, {\n 'save': {\n method: 'POST',\n headers: {\"Content-Type\": \"multipart/form-data\", \"Accept\": \"application/json\"}\n }\n }),\n DailyReportDelete: $resource(buildUrl('api/Daily/Report/Delete/:id'), {id: '@Id'}, {'delete': {method: 'POST'}}),\n CustomDailyReport: $resource(buildUrl('api/Daily/Custom')),\n DailyCreate: $resource(buildUrl('api/Daily/Create')),\n DailySubmit: $resource(buildUrl('api/Daily/Submit'), null, {put: {method: 'PUT'}}),\n DailyReportList: $resource(\n buildUrl('api/Daily/Get/:id'), {id: '@Id'}, {\n get: {\n method: 'GET',\n isArray: true\n }\n }\n ),\n DailyTicketRemove: $resource(buildUrl('api/Daily/RemoveTicket'), null, {remove: {method: 'GET'}}),\n\n\n PaymentCategory: $resource(buildUrl('api/PaymentCategory/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n Project: $resource(buildUrl('api/Project/:id'), {id: '@Id'}, {'update': {method: 'PUT'}}),\n\n ProjectHistory: $resource(buildUrl('api/Project/History'), {}, {get: {method: 'GET', isArray: true}}),\n\n Payment: $resource(buildUrl('api/Payment/:id'), {id: '@Id'}, {\n 'update': {method: 'PUT'},\n 'query': {method: 'GET', isArray: false},\n 'delete': {method: 'DELETE', isArray: false},\n }),\n InitiateNewPayroll: $resource(buildUrl('api/Payment/NewPayroll'), {}, {\n get: {\n method: 'GET',\n isArray: false\n }\n }),\n\n DReport: $resource(buildUrl('api/Report/GetDailySummary'), {}, {\n get: {\n method: 'GET',\n isArray: false,\n headers: {}\n }\n }),\n\n ConfigurationSettings: $resource(\n buildUrl('api/Settings/:id'), {id: '@Id'}, {\n get: {\n method: 'GET',\n isArray: true\n }, save: {method: \"POST\"}\n }\n ),\n\n LocationReport: $resource(buildUrl('api/LocationReport/:id', {id: '@id'}))\n };\n }]\n );\n","angular\n .module('ustreet-app')\n .factory(\n 'scheduleService', ['$http', '$resource', function ($http, $resource) {\n var baseUrl = config.apiurl;\n var buildUrl = function (resourceUrl) {\n return baseUrl + resourceUrl;\n };\n\n return {\n Schedule: $resource(\n buildUrl(\"api/Schedules/Create/:date\"), { date: '@date' }, {\n create: { method: 'GET' },\n save: { method: 'POST' }\n }\n ),\n Finalizer: $resource(buildUrl(\"api/Schedules/Finalize\"), {}, { finalize: { method: 'GET' } }),\n ByEmployee: $resource(\n buildUrl('api/Schedules/ByEmployee/:id'), { id: '@id' }, {\n get: {\n method: 'POST',\n isArray: false\n }\n }\n ),\n Locations: $resource(\n buildUrl('api/Schedules/Locations/:id'), { id: '@id' }, {\n get: {\n method: 'POST',\n isArray: true\n }\n }\n ),\n MySchedule: $resource(buildUrl(\"api/Schedules/My\"), {}, { get: { method: 'GET', isArray: false } }),\n MyEmployee: $resource(buildUrl(\"api/Schedules/MyEmployee\"), {}, { get: { method: 'POST', isArray: false } }),\n MyLocation: $resource(buildUrl(\"api/Schedules/MyLocation\"), {}, { get: { method: 'POST', isArray: false } }),\n Weeks: $resource(buildUrl(\"api/Schedules/Weeks\"), {}, { get: { method: 'POST', isArray: true } })\n };\n }]\n);\n","angular\n .module('ustreet-app')\n .factory('paymentCategorySvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.PaymentCategory;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property.\n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n deleteItem: deleteItem\n };\n}]);\n\n","angular\n .module('ustreet-app')\n .factory('paymentSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.Payment;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property.\n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n return Service.update(item);\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n var getList = function (param) {\n return Service.query(param);\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n var InitiateNewPayroll = function(){\n return serviceHelper.InitiateNewPayroll.get();\n };\n\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n InitiateNewPayroll: InitiateNewPayroll,\n deleteItem: deleteItem\n };\n}]);\n","angular\n .module('ustreet-app')\n .factory('projectSvc', ['$resource', 'serviceHelperSvc', function ($resource, serviceHelper) {\n var Service = serviceHelper.Project;\n var add = function (item) {\n //$resource.save will immediately return an object which will have $promise property.\n //This property will get resolved with values, once the Server returns response\n return Service.save(item);\n };\n var edit = function (item) {\n var updation = Service.update(item);\n return updation;\n };\n var getItem = function (id) {\n return Service.get({ id: id });\n };\n\n var getHistory = function(id){\n return serviceHelper.ProjectHistory.get({Id: id});\n }\n\n var getList = function () {\n return Service.query();\n };\n var deleteItem = function (id) {\n return Service.delete({ id: id });\n };\n\n return {\n add: add,\n edit: edit,\n getItem: getItem,\n getList: getList,\n getHistory: getHistory,\n deleteItem: deleteItem\n };\n}]);\n","function LocationDayCtrl($scope, $location, $stateParams, locationSvc, serviceHelper) {\n\n function init() {\n if ($stateParams.id > 0) {\n $scope.location = locationSvc.getLocation($stateParams.id);\n $scope.days = serviceHelper.LocationDay.get({id: $stateParams.id});\n\n $scope.days.$promise.then(function (d) {\n angular.forEach($scope.days, function (day) {\n\n angular.forEach(day.Shifts, function (shift) {\n shift.StartHour = Date.toLocalDate(shift.StartHour);\n });\n\n });\n });\n }\n }\n\n init();\n\n $scope.editDays = function () {\n serviceHelper.LocationDay.put($scope.location.Id, $scope.days)\n .$promise\n .then(function (data) {\n $location.path('/Admin/Locations');\n }, function (error) {\n console.info('Your changes have not been saved. ');\n });\n };\n\n}\n\nangular\n .module('ustreet-app')\n .component('locationDay', {\n bindings: 'locationDay',\n controller: LocationDayCtrl,\n templateUrl: '/Scripts/app/components/admin/locations/partials/days.html',\n });\n\nLocationDayCtrl.$inject = ['$scope', '$location', '$stateParams', 'locationSvc', 'serviceHelperSvc']","function LocationCtrl($scope, $location, $stateParams, locationSvc, locationTypeSvc, $filter) {\n\n $scope.ready = false;\n\n $scope.editLocation = function (location) {\n if (location.StartDate === '') {\n $scope.errorMessage = 'Date value is required. Please set it and try again.';\n return;\n }\n location.StartDate = new moment(location.StartDate).format('yyyy-MM-DD');\n //Hack: Angular Binding did not work properly on date input type\n if (location.Id !== undefined) {\n\n locationSvc.editLocation(location).$promise.then(function () {\n $location.url('/Admin/Locations');\n }).catch(function (error) {\n $scope.errorMessage = 'There is an error saving your request.';\n });\n } else {\n\n locationSvc.addLocation(location).$promise\n .then(function () {\n $location.url('/Admin/Locations');\n }).catch(function () {\n $scope.errorMessage = 'There was error saving your request.';\n });\n }\n\n };\n\n function init() {\n $scope.locationTypes = locationTypeSvc.getList();\n if ($stateParams.id > 0) {\n $scope.location = locationSvc.getLocation($stateParams.id);\n $scope.location.$promise.then(function () {\n $scope.location.StartDate = $filter('date')($scope.location.StartDate, 'yyyy-MM-dd');\n $scope.ready = true;\n });\n } else {\n $scope.ready = true;\n }\n }\n\n init();\n}\n\n\nangular\n .module('ustreet-app')\n .component('locationForm', {\n bindings: 'location-form',\n controller: LocationCtrl,\n templateUrl: '/Scripts/app/components/admin/locations/partials/edit.html'\n });\n\nLocationCtrl.$inject = ['$scope', '$location', '$stateParams', 'locationSvc', 'locationTypeSvc'];\n","function LocationsCtrl($scope, locationSvc, locationTypeSvc) {\n $scope.locations = [];\n\n $scope.ready = false;\n\n $scope.deleteLocation = function (locationId) {\n locationSvc.deleteLocation(locationId).$promise\n .then(\n function (data, responseHeaders) {\n for (var i = $scope.locations.length - 1; i >= 0; i--) {\n if ($scope.locations[i].Id === locationId) {\n $scope.locations.splice(i, 1);\n break;\n }\n }\n }\n );\n\n };\n this.init = function () {\n this.loadLocations();\n };\n this.loadLocations = function () {\n $scope.master_locations = locationSvc.getLocationsFull();\n $scope.master_locations.$promise.then(function (data) {\n $scope.ready = true;\n });\n $scope.locationTypes = locationTypeSvc.getList();\n $scope.FilterLocations();\n };\n\n $scope.FilterLocations = function () {\n if ($scope.LocationTypeId) {\n $scope.locations = _.filter(\n $scope.master_locations, function (l) {\n return l.LocationTypeId === $scope.LocationTypeId;\n }\n );\n } else {\n $scope.locations = $scope.master_locations;\n\n }\n };\n\n this.init();\n}\n\nangular\n .module('ustreet-app')\n .component('locationList', {\n bindings: 'locationList',\n controller: LocationsCtrl,\n templateUrl: '/Scripts/app/components/admin/locations/partials/index.html'\n });\n\nLocationsCtrl.$inject = ['$scope', 'locationSvc', 'locationTypeSvc'];\n","angular\n .module('ustreet-app')\n .config(['$stateProvider', function($stateProvider) {\n $stateProvider.state('/Admin/Locations', {\n name: 'location-list',\n url: '/Admin/Locations',\n component: 'locationList'\n });\n $stateProvider.state('/Admin/Locations/Add', {\n name: 'add-location',\n url: '/Admin/Locations/Add',\n component: 'locationForm'\n });\n $stateProvider.state('/Admin/Locations/Edit', {\n url: '/Admin/Locations/Edit/:id',\n component: 'locationForm'\n });\n $stateProvider.state('/Admin/Locations/Days', {\n url: '/Admin/Locations/Days/:id',\n component: 'locationDay'\n });\n }]);","angular\n .module('ustreet-app')\n .controller('LocationTypeCtrl', ['$scope', '$location', '$stateParams', 'locationTypeSvc',\n function ($scope, $location, $stateParams, locationTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, locationTypeSvc, '/Admin/LocationTypes');\n }]);\n","angular\n .module('ustreet-app')\n .controller('ProfileCtrl', ['$scope', '$location', '$stateParams', 'userSvc', 'locationSvc',\n function ($scope, $location, $stateParams, userSvc, locationSvc) {\n var service = userSvc;\n\n $scope.show_change_password = app.change_password;\n app.change_password = false;\n\n $scope.edit = function (item) {\n service.edit(item).$promise.then(function (data) {\n $location.url('/Home');\n }, function (error) {\n $scope.message = error.data.ExceptionMessage;\n });\n };\n\n init();\n function init() {\n $scope.item = service.getItem(-1);\n }\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('RoleCtrl', ['$scope', '$location', '$stateParams', 'roleSvc',\n function ($scope, $location, $stateParams, roleSvc) {\n app.bindCrud($location, $scope, $stateParams, roleSvc, '/Admin/Roles');\n }]);\n","angular\n .module('ustreet-app')\n .controller('UserCtrl', ['$scope', '$location', '$stateParams', 'userSvc', 'locationSvc','mainSvc',\n function ($scope, $location, $stateParams, userSvc, locationSvc, mainSvc) {\n let url = '/Admin/Users';\n $scope.locations = locationSvc.getLocations();\n\n $scope.hasRole = app.hasRole;\n\n $scope.add = function (item) {\n userSvc.add(item).$promise\n .then(function (data) {\n $location.url(url);\n });\n };\n\n $scope.edit = function (item) {\n userSvc.edit(item).$promise.then(function (data) {\n $location.url(url);\n });\n };\n\n $scope.register = function (userRegistration) {\n if (userRegistration.password !== userRegistration.confirmPassword) {\n $scope.errorMessage = \"Passwords do not match\";\n return;\n }\n\n $scope.errorMessage = '';\n\n mainSvc.registerUser(userRegistration).$promise\n .then(function (data) {\n $location.url(url);\n }).catch(function (error) {\n if (error.status === 400) {\n $scope.errorMessage = \"Email / phone number already exists.\";\n }\n else {\n $scope.errorMessage = \"An error occurred while performing this action. Please try after some time.\";\n }\n });\n };\n function init() {\n if ($stateParams.id !== 0 && $stateParams.id !== undefined) {\n $scope.item = userSvc.getItem($stateParams.id);\n }\n $('.ui.checkbox')\n .checkbox();\n }\n init();\n\n\n }]);\n","angular\n .module('ustreet-app')\n .controller('UserDayCtrl', ['$scope', '$location', '$stateParams', 'userSvc', 'serviceHelperSvc',\n function ($scope, $location, $stateParams, userSvc, serviceHelper) {\n\n function init() {\n if ($stateParams.id) {\n $scope.user = userSvc.getItem($stateParams.id);\n $scope.days = serviceHelper.UserDay.get({ id: $stateParams.id });\n $scope.days.$promise.then(function (data) {\n angular.forEach($scope.days, function (d, i) {\n d.StartTime = Date.toLocalDate(d.StartTime);\n });\n });\n }\n }\n\n init();\n\n $scope.editDays = function () {\n serviceHelper.UserDay.put($scope.user.Id, $scope.days)\n .$promise\n .then(function (data) {\n //console.info(data);\n $location.path('/Admin/Users');\n }, function (error) {\n //console.info('Your changes have not been saved. ');\n });\n };\n\n }]);","angular\n .module('ustreet-app')\n .controller(\n 'UsersCtrl', ['$scope', 'userSvc', 'serviceHelperSvc', 'roleSvc',\n function ($scope, userSvc, serviceHelperSvc,roleSvc) {\n $scope.list = [];\n $scope.roles = [];\n $scope.search = '';\n $scope.notfy = undefined;\n $scope.confirmation = undefined;\n $scope.ready = false;\n\n\n $scope.showAll = false;\n\n $scope.searchUser = function () {\n let list = $scope.allList;\n if (!$scope.showAll) {\n list = _.where($scope.allList, {IsActive: true});\n }\n if($scope.role !== '' && $scope.role !== undefined){\n list = list.filter((item) => {\n return item.RoleKeys.includes($scope.role);\n });\n }\n if ($scope.search !== '') {\n const search = $scope.search.toLowerCase();\n list = list.filter(function (user) {\n return (user.FirstName.toLowerCase().includes(search) || user.LastName.toLowerCase().includes(search));\n });\n }\n $scope.list = list;\n $scope.ready = true;\n };\n\n $scope.toggleSelected = function () {\n for (const element of $scope.list) {\n element.IsSelected = $scope.toggle;\n }\n };\n\n $scope.sendMessage = function () {\n const users = $scope.list.filter((user) => user.IsSelected).map((user) => user.PhoneNumber);\n\n\n if (users.length === 0) {\n $scope.notify = (\"Please select a few users before you click send\");\n return;\n }\n\n const message = {\n Message: $scope.message.Text,\n Numbers: users\n };\n\n const onSuccess = function () {\n $scope.confirmation = \"Message sent\";\n $scope.SelectiveGroup = false;\n };\n\n const onFailure = function () {\n $scope.notify = \"Error sending\";\n };\n\n serviceHelperSvc\n .Message.send(message)\n .$promise.then(onSuccess, onFailure);\n };\n\n this.init = function () {\n $scope.allList = userSvc.getList();\n $scope.allList.$promise.then(function () {\n $scope.allList.forEach(function (user) {\n if(user.Roles){\n user.RoleKeys = user.Roles.map(function (role) {\n return role.Key;\n });\n }\n });\n $scope.searchUser();\n });\n\n $scope.roles = roleSvc.getList();\n };\n\n this.init();\n }\n ]\n );\n","angular\n .module('ustreet-app')\n .controller(\n 'AdjustmentTypesCtrl', ['$scope', 'adjustmentTypeSvc',\n function ($scope, adjustmentTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = adjustmentTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller(\n 'ConfigurationCtrl', ['$scope', 'serviceHelperSvc',\n function ($scope, serviceHelperSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = serviceHelperSvc.ConfigurationSettings.get();\n };\n\n $scope.Save = function () {\n var submit = serviceHelperSvc.ConfigurationSettings.save($scope.list);\n submit.$promise.then(\n function (data) {\n $scope.message = \"Settings Saved\";\n }\n );\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller(\n 'ExpenseTypesCtrl', ['$scope', 'expenseTypeSvc',\n function ($scope, expenseTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = expenseTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller(\n 'IncidentTypesCtrl', ['$scope', 'incidentTypeSvc',\n function ($scope, incidentTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = incidentTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller(\n 'LocationTypesCtrl', ['$scope', 'locationTypeSvc',\n function ($scope, locationTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = locationTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);\n","angular\n .module('ustreet-app')\n .controller(\n 'PaymentTypesCtrl', ['$scope', 'paymentTypeSvc',\n function ($scope, paymentTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = paymentTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller(\n 'RolesCtrl', ['$scope', 'roleSvc',\n function ($scope, roleSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = roleSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller('ServiceCtrl', ['$scope', '$location', '$stateParams', 'serviceTypeSvc',\n function ($scope, $location, $stateParams, serviceTypeSvc) {\n app.bindCrud($location, $scope, $stateParams, serviceTypeSvc, '/Admin/Service');\n }]);","angular\n .module('ustreet-app')\n .controller(\n 'ServicesCtrl', ['$scope', 'serviceTypeSvc',\n function ($scope, serviceTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = serviceTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller('ShiftCtrl', ['$scope', '$location', '$stateParams', 'shiftSvc',\n function ($scope, $location, $stateParams, shiftSvc) {\n app.bindCrud($location, $scope, $stateParams, shiftSvc, '/Admin/Shifts');\n }]);","\nangular\n .module('ustreet-app')\n .controller(\n 'ShiftsCtrl', ['$scope', 'shiftSvc',\n function ($scope, shiftSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = shiftSvc.getList();\n };\n\n this.init();\n }\n ]\n);","angular\n .module('ustreet-app')\n .controller(\n 'TicketTypesCtrl', ['$scope', 'ticketTypeSvc',\n function ($scope, ticketTypeSvc) {\n $scope.list = [];\n\n this.init = function () {\n $scope.list = ticketTypeSvc.getList();\n };\n\n this.init();\n }\n ]\n);\n","var EmployeeScheduleModel = function(employee){\n $.extend(this, employee);\n\n\n\n\n // initiailization routine.\n function initDatesForWorkingHours(days) {\n angular.forEach(days, function (d) {\n d.StartTime = Date.toLocalDate(d.StartTime);\n });\n }\n\n EmployeeScheduleModel.prototype.init = function(){\n initDatesForWorkingHours(this.Day1);\n initDatesForWorkingHours(this.Day2);\n initDatesForWorkingHours(this.Day3);\n initDatesForWorkingHours(this.Day4);\n initDatesForWorkingHours(this.Day5);\n initDatesForWorkingHours(this.Day6);\n initDatesForWorkingHours(this.Day7);\n };\n\n};\n","var LocationScheduleModel = function(){\n\n};\n"]}