{"version":3,"sources":["webpack:///src/app/components/add-contact-dialog/add-contact-dialog.component.css","webpack:///src/app/components/add-template-dialog/add-template-dialog.component.html","webpack:///src/app/components/end-of-day-dialog/end-of-day-dialog.component.css","webpack:///src/app/components/page-not-found/page-not-found.component.html","webpack:///src/app/components/add-user-dialog/add-user-dialog.component.ts","webpack:///src/app/components/view-message-dialog/view-message-dialog.component.ts","webpack:///src/app/components/message-stats/message-stats.component.html","webpack:///src/app/components/home/home.component.css","webpack:///src/app/components/email-invoice-dialog/email-invoice-dialog.component.html","webpack:///src/app/components/email-invoice-dialog/email-invoice-dialog.component.css","webpack:///src/app/components/offices/offices.component.html","webpack:///src/app/components/templates/templates.component.css","webpack:///src/app/components/end-of-day-dialog/end-of-day-dialog.component.ts","webpack:///src/app/components/confirm-patch-dialog/confirm-patch-dialog.component.ts","webpack:///src/app/components/assign-recurring-product-dialog/assign-recurring-product-dialog.component.ts","webpack:///src/app/components/add-notice-dialog/add-notice-dialog.component.ts","webpack:///src/app/components/client-movements/client-movements.component.html","webpack:///src/app/app-settings.ts","webpack:///src/app/components/header/header.component.ts","webpack:///src/app/components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component.css","webpack:///src/app/components/add-invoice-product-dialog/add-invoice-product-dialog.component.css","webpack:///src/app/components/my-account/my-account.component.ts","webpack:///src/app/components/client-invoicing/client-invoicing.component.html","webpack:///src/app/components/finalise-invoice-dialog/finalise-invoice-dialog.component.ts","webpack:///src/app/components/templates/templates.component.ts","webpack:///src/app/services/movements.service.ts","webpack:///src/app/components/invoice-settings/invoice-settings.component.html","webpack:///src/app/components/view-notice-dialog/view-notice-dialog.component.css","webpack:///src/app/components/view-message-dialog/view-message-dialog.component.html","webpack:///src/app/components/view-invoice-product-dialog/view-invoice-product-dialog.component.html","webpack:///src/app/components/view-invoice-product-dialog/view-invoice-product-dialog.component.ts","webpack:///src/app/models/contactData.ts","webpack:///src/app/components/client-templates/client-templates.component.ts","webpack:///src/app/components/my-account/my-account.component.css","webpack:///src/app/components/message-stats/message-stats.component.ts","webpack:///src/app/components/invoice-settings/invoice-settings.component.ts","webpack:///src/app/components/contacts-detail/contacts-detail.component.css","webpack:///src/app/components/contacts/contacts.component.html","webpack:///src/app/models/officeData.ts","webpack:///src/app/components/finalise-invoice-dialog/finalise-invoice-dialog.component.css","webpack:///src/app/components/add-office-dialog/add-office-dialog.component.css","webpack:///src/app/components/add-credit-note-dialog/add-credit-note-dialog.component.html","webpack:///src/app/services/reporting.service.ts","webpack:///src/app/components/clients/clients.component.html","webpack:///src/app/components/clients/clients.component.ts","webpack:///src/app/components/client-recurring-products/client-recurring-products.component.css","webpack:///src/app/components/notices/notices.component.html","webpack:///src/app/app.component.css","webpack:///src/app/models/clientData.ts","webpack:///src/app/components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component.ts","webpack:///src/environments/environment.ts","webpack:///src/app/components/messages/messages.component.css","webpack:///src/app/components/client-templates/client-templates.component.html","webpack:///src/app/components/home/home.component.ts","webpack:///src/app/components/reset/reset.component.css","webpack:///src/app/components/view-message-dialog/view-message-dialog.component.css","webpack:///src/app/components/print-invoice/print-invoice.component.html","webpack:///src/app/components/print-invoice/print-invoice.component.ts","webpack:///src/app/components/invoicing-detail/invoicing-detail.component.html","webpack:///src/app/components/add-line-item-dialog/add-line-item-dialog.component.html","webpack:///src/app/auth.interceptor.ts","webpack:///src/app/services/login.service.ts","webpack:///src/app/components/journals/journals.component.html","webpack:///src/app/components/invoice-settings/invoice-settings.component.css","webpack:///src/app/components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component.html","webpack:///src/app/components/finalise-invoice-dialog/finalise-invoice-dialog.component.html","webpack:///src/app/components/user-detail/user-detail.component.html","webpack:///src/app/components/complete-invoice-dialog/complete-invoice-dialog.component.ts","webpack:///src/app/components/page-not-found/page-not-found.component.css","webpack:///src/app/components/add-movement-dialog/add-movement-dialog.component.css","webpack:///src/app/models/meData.ts","webpack:///src/app/components/client-sent-invoices/client-sent-invoices.component.html","webpack:///src/app/components/add-line-item-dialog/add-line-item-dialog.component.css","webpack:///src/app/components/change-invoice-date-dialog/change-invoice-date-dialog.component.ts","webpack:///src/app/reuse-strategy.ts","webpack:///src/app/models/messageData.ts","webpack:///src/app/components/users/users.component.ts","webpack:///src/app/components/void-invoice-dialog/void-invoice-dialog.component.html","webpack:///src/app/services/messages.service.ts","webpack:///src/app/components/view-line-item-dialog/view-line-item-dialog.component.html","webpack:///src/app/components/add-client-dialog/add-client-dialog.component.ts","webpack:///src/app/components/invoicing-products/invoicing-products.component.html","webpack:///src/app/components/complete-invoice-dialog/complete-invoice-dialog.component.css","webpack:///src/app/components/reporting/reporting.component.ts","webpack:///src/app/components/delete-line-item-dialog/delete-line-item-dialog.component.css","webpack:///src/app/components/office-clients/office-clients.component.html","webpack:///src/app/services/invoicing.service.ts","webpack:///src/app/components/page-not-found/page-not-found.component.ts","webpack:///src/app/components/outbox/outbox.component.html","webpack:///src/app/components/view-line-item-dialog/view-line-item-dialog.component.css","webpack:///src/app/components/reset/reset.component.html","webpack:///src/app/components/client-recurring-products/client-recurring-products.component.html","webpack:///src/app/components/add-office-dialog/add-office-dialog.component.html","webpack:///src/app/models/movementData.ts","webpack:///src/app/components/add-invoice-dialog/add-invoice-dialog.component.ts","webpack:///src/app/components/contacts/contacts.component.ts","webpack:///src/app/services/journals.service.ts","webpack:///src/app/models/noticeData.ts","webpack:///src/app/components/templates/templates.component.html","webpack:///src/app/components/add-contact-dialog/add-contact-dialog.component.html","webpack:///src/app/components/user-detail/user-detail.component.css","webpack:///src/app/components/delete-line-item-dialog/delete-line-item-dialog.component.html","webpack:///src/app/components/login/login.component.html","webpack:///src/app/components/journals/journals.component.css","webpack:///src/app/components/print-movement/print-movement.component.css","webpack:///src/app/components/office-clients/office-clients.component.css","webpack:///src/app/components/add-user-dialog/add-user-dialog.component.html","webpack:///src/app/components/client-recurring-products/client-recurring-products.component.ts","webpack:///src/app/components/view-template-dialog/view-template-dialog.component.html","webpack:///src/app/models/endOfDayClient.ts","webpack:///src/app/components/confirm-patch-dialog/confirm-patch-dialog.component.css","webpack:///src/app/components/assign-recurring-product-dialog/assign-recurring-product-dialog.component.css","webpack:///src/app/components/client-messages/client-messages.component.ts","webpack:///src/app/components/offices/offices.component.css","webpack:///src/app/components/users/users.component.html","webpack:///src/app/components/add-notice-dialog/add-notice-dialog.component.html","webpack:///node_modules/moment/locale sync ^\\.\\/.*$","webpack:///src/app/components/view-template-dialog/view-template-dialog.component.css","webpack:///src/app/components/delete-line-item-dialog/delete-line-item-dialog.component.ts","webpack:///src/app/components/office-detail/office-detail.component.css","webpack:///src/app/components/raise-credit-note-dialog/raise-credit-note-dialog.component.ts","webpack:///src/app/components/add-invoice-dialog/add-invoice-dialog.component.html","webpack:///src/app/components/email-invoice-dialog/email-invoice-dialog.component.ts","webpack:///src/app/app.component.ts","webpack:///src/app/components/assign-recurring-product-dialog/assign-recurring-product-dialog.component.html","webpack:///src/app/components/view-notice-dialog/view-notice-dialog.component.ts","webpack:///src/app/components/email-message-report-dialog/email-message-report-dialog.component.html","webpack:///src/app/components/admin/admin.component.css","webpack:///src/app/components/add-invoice-product-dialog/add-invoice-product-dialog.component.html","webpack:///src/app/services/offices-users-roles.service.ts","webpack:///src/app/components/users/users.component.css","webpack:///src/app/components/reporting/reporting.component.html","webpack:///src/app/components/add-contact-dialog/add-contact-dialog.component.ts","webpack:///src/app/components/void-invoice-dialog/void-invoice-dialog.component.ts","webpack:///src/app/components/journals/journals.component.ts","webpack:///src/app/app.component.html","webpack:///src/app/components/contacts/contacts.component.css","webpack:///src/app/components/login/login.component.ts","webpack:///src/app/models/invoiceData.ts","webpack:///src/app/components/view-contacts-dialog/view-contacts-dialog.component.html","webpack:///src/app/components/client-templates/client-templates.component.css","webpack:///src/app/components/add-notice-dialog/add-notice-dialog.component.css","webpack:///src/app/pipes/hide.pipe.ts","webpack:///src/app/components/client-messages/client-messages.component.css","webpack:///src/app/components/end-of-day-dialog/end-of-day-dialog.component.html","webpack:///src/app/components/office-clients/office-clients.component.ts","webpack:///src/app/components/offices/offices.component.ts","webpack:///src/app/components/add-invoice-product-dialog/add-invoice-product-dialog.component.ts","webpack:///src/app/components/client-detail/client-detail.component.ts","webpack:///src/app/app.module.ts","webpack:///src/app/components/print-movement/print-movement.component.html","webpack:///src/app/components/add-client-dialog/add-client-dialog.component.html","webpack:///src/app/components/print-movement/print-movement.component.ts","webpack:///src/app/components/reporting/reporting.component.css","webpack:///src/app/components/outbox/outbox.component.css","webpack:///src/app/components/raise-credit-note-dialog/raise-credit-note-dialog.component.html","webpack:///src/app/components/change-invoice-date-dialog/change-invoice-date-dialog.component.css","webpack:///src/app/components/client-movements/client-movements.component.ts","webpack:///src/app/components/invoicing-detail/invoicing-detail.component.ts","webpack:///src/app/components/client-sent-invoices/client-sent-invoices.component.css","webpack:///src/app/components/admin/admin.component.ts","webpack:///src/app/services/user-session.service.ts","webpack:///src/app/components/view-notice-dialog/view-notice-dialog.component.html","webpack:///src/app/components/client-invoicing/client-invoicing.component.css","webpack:///src/app/components/messages/messages.component.html","webpack:///src/app/components/reset/reset.component.ts","webpack:///src/app/services/templates.service.ts","webpack:///src/app/components/change-invoice-reference-dialog/change-invoice-reference-dialog.component.ts","webpack:///src/app/models/invoicingProductsData.ts","webpack:///src/app/components/clients/clients.component.css","webpack:///src/app/components/add-office-dialog/add-office-dialog.component.ts","webpack:///src/app/components/client-messages/client-messages.component.html","webpack:///src/app/models/templateData.ts","webpack:///src/app/components/add-movement-dialog/add-movement-dialog.component.html","webpack:///src/app/components/confirm-patch-dialog/confirm-patch-dialog.component.html","webpack:///src/app/components/invoicing/invoicing.component.html","webpack:///src/app/components/add-template-dialog/add-template-dialog.component.ts","webpack:///src/app/models/userData.ts","webpack:///src/app/material-module.ts","webpack:///src/app/components/office-detail/office-detail.component.ts","webpack:///src/app/components/invoicing/invoicing.component.ts","webpack:///src/app/components/change-invoice-reference-dialog/change-invoice-reference-dialog.component.html","webpack:///src/app/components/add-invoice-dialog/add-invoice-dialog.component.css","webpack:///src/app/components/email-message-report-dialog/email-message-report-dialog.component.ts","webpack:///src/app/components/add-client-dialog/add-client-dialog.component.css","webpack:///src/app/components/my-account/my-account.component.html","webpack:///src/app/components/contacts-detail/contacts-detail.component.ts","webpack:///src/app/components/outbox/outbox.component.ts","webpack:///src/app/components/view-contacts-dialog/view-contacts-dialog.component.ts","webpack:///src/app/components/view-movement-dialog/view-movement-dialog.component.html","webpack:///src/app/components/client-invoicing/client-invoicing.component.ts","webpack:///src/app/components/client-detail/client-detail.component.css","webpack:///src/app/components/contacts-detail/contacts-detail.component.html","webpack:///src/app/components/login/login.component.css","webpack:///src/app/components/invoicing-detail/invoicing-detail.component.css","webpack:///src/app/services/clients-contacts.service.ts","webpack:///src/app/components/client-detail/client-detail.component.html","webpack:///src/app/components/add-credit-note-dialog/add-credit-note-dialog.component.css","webpack:///src/app/components/change-invoice-reference-dialog/change-invoice-reference-dialog.component.css","webpack:///src/app/components/add-template-dialog/add-template-dialog.component.css","webpack:///src/app/components/invoicing-products/invoicing-products.component.css","webpack:///src/app/components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component.ts","webpack:///src/app/components/complete-invoice-dialog/complete-invoice-dialog.component.html","webpack:///src/app/components/change-invoice-date-dialog/change-invoice-date-dialog.component.html","webpack:///src/app/auth.guard.service.ts","webpack:///src/app/components/user-detail/user-detail.component.ts","webpack:///src/app/components/void-invoice-dialog/void-invoice-dialog.component.css","webpack:///src/app/components/office-detail/office-detail.component.html","webpack:///src/app/models/passwordData.ts","webpack:///src/app/components/email-message-report-dialog/email-message-report-dialog.component.css","webpack:///src/app/components/add-user-dialog/add-user-dialog.component.css","webpack:///src/app/components/notices/notices.component.css","webpack:///src/app/components/add-movement-dialog/add-movement-dialog.component.ts","webpack:///src/app/components/header/header.component.css","webpack:///src/app/models/userRolesData.ts","webpack:///src/app/components/home/home.component.html","webpack:///src/app/components/invoicing/invoicing.component.css","webpack:///src/app/components/view-contacts-dialog/view-contacts-dialog.component.css","webpack:///src/app/components/view-movement-dialog/view-movement-dialog.component.css","webpack:///src/app/components/print-invoice/print-invoice.component.css","webpack:///src/app/components/client-sent-invoices/client-sent-invoices.component.ts","webpack:///src/app/components/view-line-item-dialog/view-line-item-dialog.component.ts","webpack:///src/app/app-routing.module.ts","webpack:///src/app/components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component.html","webpack:///src/app/components/view-invoice-product-dialog/view-invoice-product-dialog.component.css","webpack:///src/app/components/messages/messages.component.ts","webpack:///src/app/components/raise-credit-note-dialog/raise-credit-note-dialog.component.css","webpack:///src/app/components/view-movement-dialog/view-movement-dialog.component.ts","webpack:///src/app/components/admin/admin.component.html","webpack:///src/app/components/message-stats/message-stats.component.css","webpack:///src/app/components/add-line-item-dialog/add-line-item-dialog.component.ts","webpack:///src/app/components/view-template-dialog/view-template-dialog.component.ts","webpack:///src/app/components/add-credit-note-dialog/add-credit-note-dialog.component.ts","webpack:///src/app/components/client-movements/client-movements.component.css","webpack:///src/app/components/header/header.component.html","webpack:///src/app/components/notices/notices.component.ts","webpack:///src/app/components/invoicing-products/invoicing-products.component.ts","webpack:///src/main.ts","webpack:///$_lazy_route_resource lazy namespace object","webpack:///src/app/components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component.css"],"names":["AddUserDialogComponent","dialogRef","data","fb","userSessionService","officesUsersRolesService","snackBar","listOfRolesFinal","isHeadOffice","navRoleOffice","navRoleInvoicing","navRoleHeadOffice","navRoleJournal","officeIsHeadOffice","rForm","group","required","email","roles","array","get","newUser","controls","setValue","office","officeId","listOfRoles","roleDataPassed","getMe","subscribe","resp","errors","length","openSnackBar","error","me","user","arrayOfRoles","Array","forEach","role","push","roleId","includes","addRole","selected","id","disabled","buildRoles","isSelected","value","message","open","duration","close","post","selectedRoles","i","hasOwnProperty","slice","console","log","addUser","checkToken","selector","template","providers","ViewMessageDialogComponent","clientsContactsService","messagesService","listOfDelivery","filteredContacts","filteredCallers","myControlContacts","myControlCaller","selectedClientId","listOfContacts","contactControl","showDelete","loading","smsLimit","callerLength","phoneLength","companyLength","emailLength","referenceLength","valueChanges","name","getContactsAutocomplete","res","contacts","getCaller","callers","messageData","dateTaken","toDate","createdDate","contactId","contactName","callerName","clientId","getDeliveryType","getContacts","phoneNo","contact","caller","event","updateMessage","resend","callerData","phoneData","companyData","emailData","referenceData","contactDetails","totalCount","contactInfo","deliveryTypeId","messageFor","fullName","getContact","callerFound","callerId","company","phone","reference","tempLimit","Number","resendMessage","messageId","deliveryTypes","isActive","EndOfDayDialogComponent","endOfDelivery","ConfirmPatchDialogComponent","AssignRecurringProductDialogComponent","invoicingService","productId","listOfRecurringProducts","qty","getRecurringProducts","getInvoiceProduct","invoiceProducts","products","assignInvoiceRecurringProduct","AddNoticeDialogComponent","dialog","add","newNotice","selectedOfficeId","startDate","isValid","reminderDate","endDate","addNotices","AppSettings","API_ENDPOINT","HeaderComponent","journalsService","loginService","router","myJournals","myJournalsNo","journalTotal","noOfJournals$","getNoJournals","sessionCheck","setInterval","checkSession","link","navigate","env","getJournals","userName$","updateUserName","userId","pageNo","messages","queryParams","timeout","userName","emailAddress","logout","clearInterval","MyAccountComponent","passwordChange","validator","checkIfMatchingPasswords","passwordKey","passwordConfirmationKey","changePassword","passwordInput","passwordConfirmationInput","changeToggle","setErrors","notEquivalent","state","enable","disable","getOwnerUser","meSelected","getUsers","userDetails","users","password","confirmPassword","updateBasicDetails","FinaliseInvoiceDialogComponent","invoice","finaliseInvoice","invoiceId","TemplatesComponent","templatesService","selectedClient","noOfTemplates","filteredClients","isActiveFilter","activeStates","viewValue","isGlobalFilter","globalStates","officeIdSubject","getOfficeId","getClientsAutocomplete","clients","setClient","getTemplates","client","clientName","templateId","global","openSnackBarError","listOfTemplates","templates","width","templateData","afterClosed","result","MovementsService","http","movementId","sortId","sortDir","headers","set","responseType","movementData","ViewInvoiceProductDialogComponent","listOfTaxCodes","listOfProductTypes","product","checkValue","productTypeId","getTaxRates","getProductTypes","setTimeout","ctrl","ctrl1","getTaxCode","taxCodes","productTypes","updateInvoiceProduct","encapsulation","None","ContactData","ContactDetails","Contacts","Contact","showPhone","showMobile","showEmail1","showEmail2","showFax","isMovement","ContactsAutocomplete","ContactAutocomplete","ClientTemplatesComponent","MessageStatsComponent","reportingService","dayTotal","barChartColors","backgroundColor","borderColor","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","barChartOptions","scaleShowVerticalLines","responsive","layout","padding","left","right","top","bottom","scales","xAxes","ticks","beginAtZero","stepSize","min","barChartLabels","barChartLabels2","barChartType","barChartLegend","lineChartLabels","lineChartOptions","elements","line","tension","yAxes","barChartData","label","barChartData2","lineChartData","clientReportingStats","userReportingStats","todayStats","userData","todayData","clientData","userLabel","clientLabel","lineChartLegend","lineChartType","todaysDate","format","getTotalMessagesByUserAndDate","getTotalMessagesByClientAndDate","getTodayTotalMessages","todayTotalMessages","messageTotal","totalMessages","timeId","e","InvoiceSettingsComponent","myControlOwners","filteredOwners","invoiceSettings","getPaymentTypes","getInvoiceSettings","ownerId","getOwner","newInvoiceSettings","getOffices","officeDetails","offices","vatRegNumber","invoicePrefix","invoiceTerms","invoiceMessage","invoiceFooter","creditNotePrefix","paymentTypeId","server","serverName","port","String","fromAddress","replyAddress","smsAccountPassword","addInvoiceSettings","ngOnInit","getPaymentType","paymentTypes","updateInvoiceSettings","invoiceSettingId","OfficeData","OfficeDetails","Offices","isOutOfHours","Office","ReportingService","fromCreatedDate","toCreatedDate","limit","statusId","fromDate","ClientsComponent","pageSize","pageSizeOptions","options","isOutOfHoursFilter","isTrialFilter","isMasterFilter","isVatFilter","paymentFilter","sourceFilter","taxFilter","loadingClients","clientNameFinal","hourStates","trialStates","masterStates","vatStates","paymentStates","sourceStates","taxStates","officeFilterId","myControl","setPageSizeOptionsInput","split","map","str","filter","option","toLowerCase","indexOf","selectedOption","getClients","getOffice","getSourceTypes","getTaxCodes","filteredOptions","startWith","getSourceType","sourceTypes","type","sourceTypeId","officeSelected","code","pageIndex","totalNoOfClients","clientDetails","listOfClients","listOfSourceTypes","listOfOffices","paymentTypes2","taxCodes2","sourceData","officeData","taxCode","reset","ClientData","ClientDetails","AddClientData","Clients","Client","ClientOfficeRef","ClientsAutocomplete","ClientAutocomplete","SubAccountData","SubAccount","ChangeInvoiceTariffDialogComponent","tariffId","listOfTariffs","invoiceData","getTariffs","changeInvoiceTariff","environment","production","HomeComponent","url","PrintInvoiceComponent","route","lineItems","window","print","selectedInvoice","params","getInvoice","getInvoices","invoices","getClient","AuthInterceptor","token","localStorage","getItem","req","next","authReq","clone","handle","err","caught","status","info","LoginService","loginData","useremailaddress","encryptedUserId","passwordData","CompleteInvoiceDialogComponent","completeInvoice","MeData","Me","Roles","LoginDetails","ChangeInvoiceDateDialogComponent","startPeriod","endPeriod","changeInvoiceDate","CustomReuseStrategy","handlers","debug","shouldDetach","routeConfig","path","future","curr","MessageSend","NewMessage","MessageData","MessageDetails","Messages","IndividualMessageStatus","MessageSearch","messageSearch","MessageSearchCSV","MessageEmailReport","UsersComponent","noOfUsers","listOfUsers","passwordReset","MessagesService","messageTypeId","AddClientDialogComponent","billingFilter","d","day","getDate","minLength","maxLength","buildOffices","locked","newClient","masterAccountId","billingDate","listOfQuarterMonths","listOfMonths","listOfOffices2","getBillingFrequency","addOffice","billingId","listOfBillingTypes","$event","tempClientRef","clientAcronym","selectedOffices","closeDate","trialClosedDate","serviceStartDate","clientCode","toUpperCase","referenceNo","addClient","clientDetailsTemp","ReportingComponent","movementsService","filteredClients2","filteredClients3","filteredClients4","clientsReportingStats","filterByDate","filterByDate2","filterByDate3","filterByDate4","selectedClient2","selectedClient3","selectedClient4","loadingCSV","loadingCSV2","loadingUserStats","loadingClientStats","loadingMovements","selectedUser","listOfInvoiceStatus","statusTypeId","navRoleClientAdmin","userOffice","days","dayFrom","dayTo","rForm2","rForm3","rForm4","filteredUsers","selectedUser1","clientFromDate","subtract","clientToDate","userFromDate","userToDate","movementFromDate","movementToDate","messageFromDate","messageToDate","invoiceFromDate","invoiceToDate","getUserStats","getClientStats","getMovements","getInvoiceStatus","val","movementFromDateFinal","movementToDateFinal","parsedResponse","blob","Blob","URL","createObjectURL","navigator","msSaveOrOpenBlob","msSaveBlob","a","document","createElement","href","download","body","appendChild","click","removeChild","revokeObjectURL","clientFromDateFinal","clientToDateFinal","getCSVTotalMessagesByUserAndDate","downloadFile","userFromDateFinal","userToDateFinal","getCSVTotalMessagesByClientAndDate","noOfMovements","movementDetails","listOfMovements","movements","csvMovements","getCSVForMessagesCount","getInvoiceStatusType","statusTypes","unshift","invoiceFromDateFinal","invoiceToDateFinal","getCSVForInvoiceWithLineItems","getCSVForInvoice","movement","getCSVForClients","InvoicingService","productCode","productName","taxId","isDisplayInvoice","invoiceTypeId","lineItemId","lineItemData","ProductData","invoiceNumber","isPermanent","recurringId","quantity","PageNotFoundComponent","MovementData","MovementDetails","Movements","Movement","AddInvoiceDialogComponent","addInvoice","ContactsComponent","snapshot","paramMap","text","clipboardData","setData","preventDefault","removeEventListener","addEventListener","execCommand","noOfContacts","JournalsService","noOfJournals","currentNoOfJournals","asObservable","deliveryType","journal","updateJournal","messageIds","NoticeData","NoticeDetails","NoticeDetail","ClientRecurringProductsComponent","deleteInvoiceRecurringProduct","updateInvoiceRecurringProduct","getInvoiceRecurringProduct","recurringProducts","eodData","ClientMessagesComponent","deliveryTypeFilter","deliveryStates","messageContent","messageSearchData","getMessages","messageFromDateFinal","messageToDateFinal","listOfMessages","noOfMessages","messageDetails","webpackContext","webpackContextResolve","__webpack_require__","o","Error","keys","webpackContextKeys","Object","resolve","module","exports","DeleteLineItemDialogComponent","lineItem","updateLineItem","RaiseCreditNoteDialogComponent","raiseCreditNote","EmailInvoiceDialogComponent","toEmailAddress","emailMessage","bccEmailAddress","ccEmailAddress","emailDetails","invoiceToEmails","invoiceEmailTemplate","sendInvoice","AppComponent","swUpdate","isEnabled","available","confirm","location","reload","ViewNoticeDialogComponent","noticeData","updateNotices","noticeId","OfficesUsersRolesService","updateData","addData","roleIds","AddContactDialogComponent","listOfDeliveryTypes","newContact","getDeliveryTypes","addContact","VoidInvoiceDialogComponent","voidInvoice","JournalsComponent","otherJournals","otherJournalsNo","userIdSubject","getUserId","getMyJournals","getOtherJournals","addJournals","LoginComponent","model","isTimeout","showLogin","newLogin","removeItem","login","setItem","forgottenPassword","success","InvoiceData","Invoices","Invoice","LineItems","InvoiceSettingsData","InvoiceSettings","InvoiceSetting","AddInvoiceData","AddInvoicePOST","AddProductPOST","AddLinePOST","AddLineItem","VoidInvoice","AutocompleteInvoice","EmailInvoiceData","PostEmailInvoice","SentInvoiceData","InvoiceSentItems","InvoiceSentItem","HidePipe","exponent","OfficeClientsComponent","OfficesComponent","listOfNotice","displayedColumns","noOfOffices","AddInvoiceProductDialogComponent","newProduct","addInvoiceProduct","ClientDetailComponent","loadingContent","listOfSubAccounts","tabId","officesLoaded","tabChanged","tabChangeEvent","index","selectedTab","getSubAccounts","contactsComponent","clientMessagesComponent","clientMovementsComponent","clientTemplatesComponent","clientInvoicingComponent","clientRecurringProductsComponent","clientSentComponent","getSentInvoices","onSelectChange","officeArray","monthInQuarter","monthNumber","mainContactId","getClientSubAccounts","parseInt","temp123","tempCode","newDate","toDateString","clientAcroynm","officePageNo","tempClient","masterAccountName","tempContact","mainContactName","isPrimaryOwner","primaryOwnerId","formLoading","updateClient","isGlobal","AppModule","declarations","imports","register","enabled","entryComponents","provide","useValue","useClass","multi","bootstrap","PrintMovementComponent","active","from","to","getClientMovements","clientMovements","ClientMovementsComponent","InvoicingDetailComponent","emailInvoiceDialog","downloadInvoice","Item","AdminComponent","officeComponent","Check","TEMP","UserSessionService","rolesSubject","userNameSubject","meData","toString","userRoles","updateUser","checkLogin","ResetComponent","changePasswordWithEncryptedUserId","TemplatesService","messageName","ChangeInvoiceReferenceDialogComponent","updateInvoice","InvoiceProductsData","InvoiceProducts","Products","Product","InvoiceRecurringProductsData","RecurringProducts","RecurringProduct","AddOfficeDialogComponent","newOffice","TemplateData","Templates","Template","AddTemplateDialogComponent","newTemplate","addTemplates","UserData","UserDetails","Users","isEODSummary","User","UserUpdate","UserAccount","MaterialModule","OfficeDetailComponent","showHide","autoCompleteValid","tab","myControlUsers","acceptedRoutes","usersComponent","templatesComponent","noticesComponent","getNotices","submitted","u","invoiceSettingsComponent","officeOwner","ownerUser","officeName","updateOffice","updateInfo","notices","getRoles","triggerUpdate","invoicingProductsComponent","getInvoicingProducts","InvoicingComponent","filteredInvoices","listOfInvoicesDraft","listOfInvoicesEmail","listOfInvoicesSage","listOfInvoicesCompleted","noOfInvoicesDraft","noOfInvoicesEmail","noOfInvoicesSage","noOfInvoicesCompleted","sortIdDraft","sortDirDraft","sortIdEmail","sortDirEmail","sortIdSage","sortDirSage","sortIdCompleted","sortDirCompleted","pageNoDraft","pageNoEmail","pageNoSage","pageNoCompleted","loadingCompletedInvoices","getCompletedInvoices","searchInvoice","invoiceNo","getDraftInvoices","getToBeEmailedInvoices","getSageInvoices","downloadAllInvoices","downloadPDFFile","sortById","SortDir","PageNo","exportToSage","EmailMessageReportDialogComponent","messageEmailReportData","reportData","form","endOfDeliveryForClient","ContactsDetailComponent","selectedContact","updateContact","OutboxComponent","statusStates","filteredContact","messageContentFinal","callerNameFinal","callerPhone","callerPhoneFinal","emailFinal","referenceFinal","companyFinal","anyContact","messageSearchCSV","MessageEmailReportData","dateRangeChecked","getMessagesCSV","contactField","concat","ViewContactsDialogComponent","contactData","contactsData","temp","ClientInvoicingComponent","listOfInvoices","isInvoiceTypeFilter","noOfInvoices","invoiceTypes","ClientsContactsService","isTrial","isMasterAccount","isVatExempt","sourceId","taxCodeId","isPrinciple","isDefaultContact","officeIds","ChangeInvoicePaymentTypeDialogComponent","listOfPaymentTypes","permanent","perm","changeInvoicePaymentType","AuthGuard","UserDetailComponent","arrayOfActiveRoles","getUserRoles","userSelected","listOfUsersActiveRoles","tempList","PasswordData","AddMovementDialogComponent","myControlContacts2","filteredContacts2","newMovement","outOfOfficeId","forwardToId","hour","minute","second","millisecond","addMovements","UserRolesData","UserRoles","RolesActive","ClientSentInvoicesComponent","listOfSentItems","noOfSentItems","invoiceSentItems","sentInvoices","ViewLineItemDialogComponent","listOfProducts","getProductType","getProducts","currentProductTypeId","unitPrice","unitCost","description","appRoutes","reuse","children","component","canActivate","runGuardsAndResolvers","AppRoutingModule","forRoot","onSameUrlNavigation","MessagesComponent","showForm","options2","viewClientData","ignoreMovement","listOfMovementIds","myControlClients","hours","minutes","focused","focusout","focus","testTime","toISOString","beforeMovement","contactMovement","newMessage","outOfOfficeContact","movementContact","contactTemp","webUrl","startsWith","privateUrl","formUrl","isEod","isEmailAddress1Eod","callerField","find","markAsPristine","markAsUntouched","setContact","sendMessage","successString","mobileNo","emailAddress1","confirmPatchDialog","ViewMovementDialogComponent","outOfOffice","forwardTo","updateMovements","AddLineItemDialogComponent","isVATExempt","newLineItem","addLineItem","ViewTemplateDialogComponent","updateTemplates","AddCreditNoteDialogComponent","raiseBlankCreditNote","NoticesComponent","notice","InvoicingProductsComponent","noOfProducts","productStates","bootstrapModule","webpackEmptyAsyncContext","Promise","then"],"mappings":"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","file":"main-es5.js","sourcesContent":["export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtY29udGFjdC1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","export default \"
\\r\\n \\r\\n

Add Template

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Global\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJlbmQtb2YtZGF5LWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \" \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n error\\r\\n
\\r\\n
\\r\\n Page not found
\\r\\n


\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\n//import { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormArray, FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n//import { EmailValidator } from '@angular/forms';\r\n\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { RoleData, Roles, Role } from '../../models/roleData';\r\n\r\n@Component({\r\n selector: 'app-add-user-dialog',\r\n templateUrl: './add-user-dialog.component.html',\r\n styleUrls: ['./add-user-dialog.component.css'],\r\n providers: [OfficesUsersRolesService, UserSessionService]\r\n})\r\nexport class AddUserDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n selectedRoles: string;\r\n newUser: User;\r\n listOfRoles: RoleData;\r\n listOfRolesFinal: Roles[] = [];\r\n isHeadOffice: boolean = false;\r\n me: any;\r\n navRoleOffice: boolean = false;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n officeIsHeadOffice: boolean = false;\r\n\r\n get roles(): FormArray {\r\n return this.rForm.get('roles');\r\n }\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public userSessionService: UserSessionService, public officesUsersRolesService: OfficesUsersRolesService, public snackBar: MatSnackBar) {\r\n this.rForm = fb.group({\r\n\r\n 'firstName': [Validators.required],\r\n 'surname': [Validators.required],\r\n 'emailAddress': [Validators.required, Validators.email],\r\n 'isEODSummary': [false],\r\n 'officeId': [],\r\n roles: this.fb.array([])\r\n });\r\n }\r\n\r\n\r\n\r\n ngOnInit() {\r\n \r\n this.newUser = new User();\r\n this.rForm.controls['officeId'].setValue(this.data.office.officeId);\r\n this.newUser.officeId = this.data.office.officeId;\r\n this.isHeadOffice = this.data.office.isHeadOffice;\r\n this.listOfRoles = this.data.roleDataPassed;\r\n\r\n this.getMe();\r\n\r\n if(this.data.office.isHeadOffice){\r\n this.officeIsHeadOffice = true;\r\n }else{\r\n this.officeIsHeadOffice = false;\r\n }\r\n }\r\n\r\n //do you belong to the head office\r\n\r\n private getMe() {\r\n\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n if (arrayOfRoles.includes(3)) {\r\n this.navRoleOffice = true;\r\n }\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n this.navRoleHeadOffice = true;\r\n }\r\n\r\n if (this.listOfRoles) {\r\n this.listOfRoles.roles.forEach((role) => {\r\n if (role.roleId === 1) {\r\n this.addRole(true, role.roleId, true);\r\n }\r\n else if (role.roleId === 6 && !this.navRoleInvoicing && !this.officeIsHeadOffice || role.roleId === 6 && this.navRoleInvoicing && !this.officeIsHeadOffice) {\r\n this.addRole(false, role.roleId, true);\r\n } else {\r\n this.addRole(false, role.roleId, false);\r\n }\r\n })\r\n \r\n }\r\n\r\n this.listOfRolesFinal = this.listOfRoles.roles;\r\n }\r\n //this.userSessionService.updateUser(resp);\r\n });\r\n }\r\n addRole(selected, id, disabled): void {\r\n\r\n this.roles.push(this.buildRoles(selected, id, disabled));\r\n }\r\n\r\n buildRoles(selected, id, disabled): FormGroup {\r\n return this.fb.group({\r\n roleId: id,\r\n isSelected: new FormControl({ value: selected, disabled: disabled })\r\n })\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n addUser(post) {\r\n\r\n this.selectedRoles = '';\r\n post.roles.forEach((role, i) => {\r\n if (!role.hasOwnProperty(\"isSelected\") && role.roleId != 6) {\r\n this.selectedRoles += role.roleId + \",\";\r\n } else {\r\n if (role.isSelected) {\r\n this.selectedRoles += role.roleId + \",\";\r\n }\r\n }\r\n });\r\n this.selectedRoles = this.selectedRoles.slice(0, -1);\r\nconsole.log(this.selectedRoles);\r\n this.officesUsersRolesService.addUser(this.selectedRoles, this.newUser).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n this.openSnackBar(\"User Added\");\r\n this.dialogRef.close();\r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { MessagesService } from '../../services/messages.service';\r\n\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\nimport { MessageSend, NewMessage, MessageData, MessageDetails, Messages } from '../../models/messageData';\r\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../../models/deliveryData';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { CallerData, Callers } from '../../models/callerData';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-message-dialog',\r\n templateUrl: './view-message-dialog.component.html',\r\n styleUrls: ['./view-message-dialog.component.css'],\r\n providers: [MessagesService, ClientsContactsService]\r\n})\r\nexport class ViewMessageDialogComponent implements OnInit {\r\n messageData: Messages;\r\n dateTaken: any;\r\n createdDate: any;\r\n listOfDelivery: DeliveryType[] = [];\r\n rForm: FormGroup;\r\n filteredContacts: ContactAutocomplete[] = [];\r\n filteredCallers: Callers[] = [];\r\n myControlContacts: FormControl = new FormControl();\r\n myControlCaller: FormControl = new FormControl();\r\n selectedClientId: number = 0;\r\n listOfContacts: Contact[] = [];\r\n contactControl: FormControl = new FormControl();\r\n showDelete: boolean = false;\r\n contactInfo: Contact;\r\n loading: boolean = false;\r\n smsLimit: number = 1361;\r\n callerLength: number = 0;\r\n phoneLength: number = 0;\r\n companyLength: number = 0;\r\n emailLength: number = 0;\r\n referenceLength: number = 0;\r\n\r\n filteredOptionsContacts: Observable;\r\n\r\n constructor(public clientsContactsService: ClientsContactsService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public messagesService: MessagesService, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n 'dateTaken': ['', Validators.required],\r\n 'contactId': [null, Validators.required],\r\n 'clientId': ['', Validators.required],\r\n 'message': ['', Validators.required],\r\n 'messageFor': ['', Validators.required],\r\n 'messageTypeId': ['', Validators.required],\r\n 'callerName': [null, Validators.required],\r\n 'phoneNo': ['', Validators.required],\r\n 'email': [''],\r\n 'reference': [''],\r\n 'company': [''],\r\n 'isEod': ['', Validators.required],\r\n 'deliveryTypeId': ['', Validators.required],\r\n 'eodDeliveryTypeId': ['', Validators.required],\r\n 'callerFound': [false]\r\n });\r\n\r\n\r\n this.myControlContacts.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlContacts.value);\r\n if (this.myControlContacts.value === '' || typeof this.myControlContacts.value != 'string') {\r\n return this.filteredContacts = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.myControlContacts.value, 0, this.selectedClientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts = res.contacts\r\n })\r\n }\r\n\r\n });\r\n\r\n this.myControlCaller.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlCaller.value);\r\n if (this.myControlCaller.value === '' || typeof this.myControlCaller.value != 'string') {\r\n return this.filteredCallers = null;\r\n } else {\r\n this.messagesService.getCaller(this.myControlCaller.value, this.selectedClientId)\r\n .subscribe(res => {\r\n return this.filteredCallers = res.callers\r\n })\r\n }\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.messageData = this.data.messageData;\r\n this.dateTaken = moment(this.messageData.dateTaken).toDate();\r\n this.createdDate = moment(this.messageData.createdDate).toDate();\r\n this.myControlContacts.setValue({ contactId: this.messageData.contactId, contactName: this.messageData.contactName });\r\n this.myControlCaller.setValue({ callerName: this.messageData.callerName });\r\n\r\n this.selectedClientId = this.data.messageData.clientId;\r\n this.getDeliveryType();\r\n this.getContacts();\r\n\r\n this.callerLength = this.messageData.callerName.length;\r\n this.phoneLength = this.messageData.phoneNo.length;\r\n console.log(this.callerLength )\r\n }\r\n\r\n\r\n\r\n\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n\r\n displayFnCallers(caller: Callers): any {\r\n return caller ? caller.callerName : caller;\r\n }\r\n\r\n\r\n public submit(event) {\r\n switch (event) {\r\n case 'GET': this.updateMessage(); break;\r\n case 'POST': this.resend(); break;\r\n default: break;\r\n }\r\n }\r\n\r\n\r\n\r\n callerUpdate(callerData){\r\n \r\n this.callerLength = callerData.length;\r\n \r\n }\r\n \r\n phoneUpdate(phoneData){\r\n \r\n this.phoneLength = phoneData.length;\r\n \r\n }\r\n \r\n companyUpdate(companyData){\r\n \r\n \r\n if(companyData.length === 0){\r\n this.companyLength = 0;\r\n }else{\r\n this.companyLength = companyData.length + 10;\r\n }\r\n }\r\n emailUpdate(emailData){\r\n \r\n if(emailData.length === 0){\r\n this.emailLength = 0;\r\n }else{\r\n this.emailLength = emailData.length + 8;\r\n }\r\n \r\n }\r\n referenceUpdate(referenceData){\r\n \r\n if(referenceData.length === 0){\r\n this.referenceLength = 0;\r\n }else{\r\n this.referenceLength = referenceData.length +12;\r\n }\r\n\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n getContacts() {\r\n\r\n this.clientsContactsService.getContacts(0, 0, this.messageData.clientId, 1, 0, 0, 1, 'DESC', 0).subscribe(resp => {\r\n\r\n this.listOfContacts = resp.contactDetails.contacts;\r\n if (resp.contactDetails.totalCount === 1) {\r\n //this.myControlContacts.setValue({ contactId: resp.contactDetails.contacts[0].clientId, fullName: resp.contactDetails.contacts[0].fullName });\r\n this.messageData.contactId = this.messageData.contactId;\r\n this.rForm.controls['contactId'].setValue(this.messageData.contactId);\r\n //this.newMessage.messageFor = resp.contactDetails.contacts[0].fullName;\r\n // this.setContact(resp.contactDetails.contacts[0]);\r\n }\r\n })\r\n\r\n }\r\n\r\n getContact(contactId: number) {\r\n this.clientsContactsService.getContacts(contactId, '0', 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length == 0) {\r\n this.contactInfo = resp.contactDetails.contacts[0];\r\n\r\n this.rForm.controls['deliveryTypeId'].setValue(this.contactInfo.deliveryTypeId);\r\n\r\n } else {\r\n this.openSnackBar(resp.errors[0].error);\r\n\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n setContact(contact) {\r\n\r\n\r\n if (contact.contactId > 0) {\r\n //this.rForm.get('messageFor').setValue(contact.contactId);\r\n //this.messageData.contactId = contact.contactId;\r\n this.messageData.messageFor = contact.fullName;\r\n\r\n this.getContact(contact.contactId);\r\n //this.rForm.controls['deliveryTypeId'].setValue(this.contactInfo.deliveryTypeId);\r\n }\r\n\r\n }\r\n\r\n setCaller(caller) {\r\n console.log(caller);\r\n const callerFound = this.rForm.get('callerFound');\r\n\r\n\r\n if (caller.callerId) {\r\n callerFound.setValue(true);\r\n this.rForm.get('callerName').setValue(caller.callerName);\r\n this.messageData.callerName = caller.callerName;\r\n this.rForm.get('company').setValue(caller.company);\r\n this.messageData.company = caller.company;\r\n this.rForm.get('phoneNo').setValue(caller.phone);\r\n this.messageData.phoneNo = caller.phone;\r\n this.rForm.get('email').setValue(caller.email);\r\n this.messageData.email = caller.email;\r\n this.rForm.get('reference').setValue(caller.reference);\r\n this.messageData.reference = caller.reference;\r\n } else {\r\n //callerFound\r\n this.rForm.get('callerName').setValue(caller.callerName);\r\n this.messageData.callerName = caller.callerName;\r\n callerFound.setValue(false);\r\n }\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n resend() {\r\n\r\n let tempLimit = Number(this.smsLimit) - (Number(this.callerLength) + Number(this.phoneLength) + Number(this.companyLength) + Number(this.emailLength) + Number(this.referenceLength));\r\n\r\n console.log(tempLimit + \"||\" + this.smsLimit);\r\n if(this.messageData.deliveryTypeId === 1 && this.messageData.message.length + this.callerLength + this.phoneLength + this.companyLength + this.emailLength + this.referenceLength > this.smsLimit || this.messageData.deliveryTypeId === 3 && this.messageData.message.length + this.callerLength + this.phoneLength + this.companyLength + this.emailLength + this.referenceLength > this.smsLimit){\r\n this.openSnackBar(\"Message is too long for SMS delivery, please edit to be \" + tempLimit + \" characters or less.\");\r\n }else{\r\n\r\n this.loading = true;\r\n this.messageData.dateTaken = moment(this.messageData.dateTaken).toDate();\r\n\r\n this.messagesService.resendMessage(this.messageData.messageId, this.messageData).subscribe(resp => {\r\n\r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n this.loading = false;\r\n this.openSnackBar(\"Message resent\");\r\n this.dialogRef.close(\"reload\");\r\n\r\n }\r\n });\r\n }\r\n\r\n }\r\n getDeliveryType() {\r\n this.clientsContactsService.getDeliveryType(0, '0', 1).subscribe(resp => {\r\n this.listOfDelivery = resp.deliveryTypes;\r\n });\r\n }\r\n updateMessage() {\r\n this.messageData.dateTaken = moment(this.messageData.dateTaken).toDate();\r\n\r\n this.messagesService.updateMessage(this.messageData.messageId, this.messageData).subscribe(resp => {\r\n\r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Message updated\");\r\n this.dialogRef.close(\"reload\");\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n deactivateMessageStep() {\r\n\r\n if (this.showDelete) {\r\n this.showDelete = false;\r\n\r\n } else {\r\n this.showDelete = true;\r\n\r\n }\r\n\r\n }\r\n deactivateMessage() {\r\n this.messageData.dateTaken = moment(this.messageData.dateTaken).toDate();\r\n this.messageData.isActive = false;\r\n\r\n this.messagesService.updateMessage(this.messageData.messageId, this.messageData).subscribe(resp => {\r\n\r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Message deactivated\");\r\n this.dialogRef.close(\"reload\");\r\n\r\n }\r\n });\r\n\r\n\r\n }\r\n}\r\n","export default \"
\\r\\n
\\r\\n

Message Stats

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Messages by User\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Messages by Client\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Messages over the day {{dayTotal | number}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJob21lLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n \\r\\n

Email Invoice

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJlbWFpbC1pbnZvaWNlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameRefEmailOut of HoursHead OfficeActive
{{office.name}}{{office.referenceNo}}{{office.emailAddress}}\\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ0ZW1wbGF0ZXMuY29tcG9uZW50LmNzcyJ9 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\n\r\n@Component({\r\n selector: 'app-end-of-day-dialog',\r\n templateUrl: './end-of-day-dialog.component.html',\r\n styleUrls: ['./end-of-day-dialog.component.css'],\r\n providers: [OfficesUsersRolesService]\r\n})\r\nexport class EndOfDayDialogComponent implements OnInit {\r\n\r\n officeId: number;\r\n loading: boolean = false;\r\n\r\n constructor(public snackBar: MatSnackBar, public officesUsersRolesService: OfficesUsersRolesService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit() {\r\n\r\n this.officeId = this.data.officeId;\r\n\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n sendEndOfDay(){\r\n this.loading = true;\r\n this.officesUsersRolesService.endOfDelivery(this.officeId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n this.loading = false;\r\n this.openSnackBar(\"End of day sent\");\r\n this.dialogRef.close();\r\n }\r\n });\r\n\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'app-confirm-patch-dialog',\r\n templateUrl: './confirm-patch-dialog.component.html',\r\n styleUrls: ['./confirm-patch-dialog.component.css']\r\n})\r\nexport class ConfirmPatchDialogComponent implements OnInit {\r\n\r\n \r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n onNoClick(){\r\n\r\n this.dialogRef.close();\r\n }\r\n\r\n approvePatch() {\r\n\r\n\r\n this.dialogRef.close();\r\n\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, InvoiceSettings, InvoiceSetting } from '../../models/invoiceData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\n\r\n@Component({\r\n selector: 'app-assign-recurring-product-dialog',\r\n templateUrl: './assign-recurring-product-dialog.component.html',\r\n styleUrls: ['./assign-recurring-product-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class AssignRecurringProductDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n clientId: number = 0;\r\n officeId: number = 0;\r\n productId: number = 0;\r\n listOfRecurringProducts: Products[] = [];\r\n qty: number = 1;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { \r\n\r\n this.rForm = fb.group({\r\n \r\n 'productId': [ Validators.required],\r\n 'qty': [Validators.required],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.clientId = this.data.clientId;\r\n this.officeId = this.data.officeId;\r\n\r\n this.getRecurringProducts(this.officeId);\r\n }\r\n\r\n getRecurringProducts(officeId: number){\r\n\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, 2, officeId, 0, 1, 1, 1, 'ASC', 0).subscribe(resp => {\r\n\r\n this.listOfRecurringProducts = resp.invoiceProducts.products;\r\n\r\n })\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n assignProductClient(post){\r\n\r\n this.invoicingService.assignInvoiceRecurringProduct(this.productId, this.clientId, this.qty).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Recurring product assigned\");\r\n this.dialogRef.close();\r\n }\r\n\r\n\r\n })\r\n\r\n\r\n \r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { NoticeData, NoticeDetails, NoticeDetail } from '../../models/noticeData';\r\n\r\n@Component({\r\n selector: 'app-add-notice-dialog',\r\n templateUrl: './add-notice-dialog.component.html',\r\n styleUrls: ['./add-notice-dialog.component.css'],\r\n providers: [OfficesUsersRolesService]\r\n})\r\nexport class AddNoticeDialogComponent implements OnInit {\r\n selectedOfficeId: number;\r\n rForm: FormGroup;\r\nnewNotice: NoticeDetail;\r\n constructor(public dialogRef: MatDialogRef, public officesUsersRolesService: OfficesUsersRolesService, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public snackBar: MatSnackBar, public dialog: MatDialog) { \r\n\r\n this.rForm = fb.group({\r\n 'officeId': [null],\r\n 'notice': [null],\r\n 'startDate': [moment().toDate(), Validators.required],\r\n 'reminderDate': [moment().toDate(), Validators.required],\r\n 'endDate': [moment().add(7, 'days').toDate(), Validators.required],\r\n 'isActive': [true]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.newNotice = new NoticeDetail();\r\n this.selectedOfficeId = this.data.officeId;\r\n this.newNotice.officeId = this.selectedOfficeId; \r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n addNotice(post) {\r\n if(moment(post.startDate).isValid()){\r\n this.newNotice.startDate = post.startDate;\r\n }\r\n if(moment(post.reminderDate).isValid()){\r\n this.newNotice.reminderDate = post.reminderDate;\r\n }\r\n if(moment(post.endDate).isValid()){\r\n this.newNotice.endDate = post.endDate;\r\n }\r\n\r\n this.officesUsersRolesService.addNotices(this.newNotice).subscribe(resp => {\r\n \r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n \r\n this.openSnackBar(\"Notice Added\");\r\n this.dialogRef.close();\r\n \r\n }\r\n });\r\n }\r\n}\r\n","export default \"
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n 0\\\" [length]=\\\"noOfMovements\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n
\\r\\n

No movements returned, please change the filter or create a movement.

\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Start DateEnd DateNotesForward ToOut of OfficeActiveAudit
{{movement.startDate | amDateFormat:'LL'}}{{movement.endDate | amDateFormat:'LL'}}
{{movement.notes}}
{{movement.forwardTo}}{{movement.outOfOffice}}\\r\\n done\\r\\n clear\\r\\n Created: {{movement.createdDate | amDateFormat:'LL'}} by {{movement.createdBy}} 0\\\">
Last updated: {{movement.lastUpdatedDate | amDateFormat:'LL'}} by {{movement.lastUpdatedBy}}
\\r\\n\\r\\n 0\\\" [length]=\\\"noOfMovements\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export class AppSettings {\r\n public static API_ENDPOINT='https://kbperfecta.com:57850/Perfecta.svc';\r\n //public static API_ENDPOINT='https://dev.kbperfecta.com:57850/Perfecta.svc';\r\n //public static API_ENDPOINT='http://200.69.13.85:57850/Perfecta.svc';\r\n //public static API_ENDPOINT='http://200.69.13.83:57850/Perfecta.svc';\r\n //public static API_ENDPOINT='http://localhost:57850/Perfecta.svc';\r\n }","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { RouterModule } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\nimport { AppSettings } from '../../app-settings';\r\nimport { NavigationEnd } from '@angular/router';\r\nimport { MeData, Me } from '../../models/meData';\r\n//import { Me } from '../../models/me';\r\nimport { Check } from '../../models/check';\r\n\r\nimport { LoginService } from '../../services/login.service';\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\n\r\nimport { JournalData, JournalMessages, JournalMessagesArray, JournalMessage } from '../../models/journalData';\r\n\r\nimport { JournalsService } from '../../services/journals.service';\r\n\r\n@Component({\r\n selector: 'app-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.css'],\r\n providers: [OfficesUsersRolesService, LoginService]\r\n})\r\nexport class HeaderComponent implements OnInit, OnDestroy {\r\n item: number;\r\n email: any;\r\n userName: string;\r\n sessionCheck: any;\r\n me: any;\r\n sub: any;\r\n id: number;\r\n post: any;\r\n test: any;\r\n updateInfo: any;\r\n officeTest: any;\r\n filteredUsers: Users[];\r\n selectedOption: User;\r\n message: string;\r\n officeId: number;\r\n navRoleOffice: boolean = false;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n myJournals: JournalMessagesArray[] = [];\r\n myJournalsNo: number = 0;\r\n noOfJournals$: Observable;\r\n journalTotal: number = 0;\r\n userName$: Observable;\r\n env: string;\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, public journalsService: JournalsService, public loginService: LoginService, private router: Router, public userSessionService: UserSessionService, public snackBar: MatSnackBar) {\r\n this.noOfJournals$ = journalsService.getNoJournals();\r\n\r\n \r\n /*this.router.events.subscribe((e: any) => {\r\n // If it is a NavigationEnd event re-initalise the component\r\n if (e instanceof NavigationEnd) {\r\n this.initialiseInvites();\r\n }\r\n });\r\n*/\r\n this.sessionCheck = setInterval(() => {\r\n console.log(\"Session check\");\r\n this.checkSession();\r\n\r\n this.userSessionService.checkToken().subscribe(resp => {\r\n\r\n if (resp.isValid) {\r\n \r\n } else {\r\n this.openSnackBar(resp.errors);\r\n }\r\n });\r\n\r\n }, 3600000);\r\n\r\n }\r\n\r\n initialiseInvites() {\r\n // Set default values and re-fetch any data you need.\r\n console.log(\"nav fix\");\r\n\r\n let link = ['/office', this.officeId, 'tab', 1];\r\n this.router.navigate(link);\r\n \r\n }\r\n\r\n ngOnInit() {\r\n\r\n if(AppSettings.API_ENDPOINT === 'https://dev.kbperfecta.com/api/Kendcomm'){\r\n this.env = \"DEV\";\r\n }else if(AppSettings.API_ENDPOINT === 'https://uat.kbperfecta.com/api/Kendcomm'){\r\n this.env = \"UAT\";\r\n }else if(AppSettings.API_ENDPOINT === 'https://kbperfecta.com/api/Kendcomm'){\r\n this.env = \"\";\r\n }\r\n\r\n this.getMe();\r\n\r\n if(this.navRoleJournal){\r\n this.noOfJournals$ = this.journalsService.getNoJournals();\r\n console.log(\"JOURNAL\" + this.noOfJournals$ );\r\n this.getJournals(0, 1);\r\n }\r\n this.userName$ = this.userSessionService.updateUserName();\r\n this.checkSession();\r\n this.me = new MeData();\r\n }\r\n\r\n\r\n gotoOffice(officeId: number){\r\n let link = ['/offices', officeId, 'tab', 0];\r\n this.router.navigate(link);\r\n }\r\n\r\n getJournals(userId, pageNo) {\r\n\r\n this.journalsService.getJournals(userId, 0, 0, 0, 0, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.myJournals = resp.messageId.messages;\r\n this.myJournalsNo = resp.messageId.totalCount;\r\n }\r\n });\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 25000,\r\n });\r\n }\r\n\r\n private checkSession() {\r\n this.userSessionService.checkToken().subscribe(resp => {\r\n\r\n if (resp.isValid) {\r\n\r\n } else {\r\n this.email = null;\r\n //clearInterval(this.sessionCheck);\r\n //this.router.navigate(['login;timeout']);\r\n this.router.navigate(['/login'], { queryParams: { timeout: 1 } });\r\n }\r\n });\r\n }\r\n\r\n private getMe() {\r\n //console.log(\"header calling\");\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n //this.me = new Me();\r\n //if( resp.user !== null){\r\n this.userName = resp.user[0].userName;\r\n this.email = resp.user[0].emailAddress;\r\n this.officeId = resp.user[0].officeId;\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n if (arrayOfRoles.includes(3)) {\r\n this.navRoleOffice = true;\r\n }\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n this.navRoleHeadOffice = true;\r\n }\r\n }\r\n //this.userSessionService.updateUser(resp);\r\n });\r\n }\r\n logout() {\r\n this.loginService.logout().subscribe(resp => {\r\n this.router.navigate(['/login'], { queryParams: { timeout: 2 } });\r\n\r\n });\r\n }\r\n ngOnDestroy() {\r\n clearInterval(this.sessionCheck);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjaGFuZ2UtaW52b2ljZS1wYXltZW50LXR5cGUtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtaW52b2ljZS1wcm9kdWN0LWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { EmailValidator } from '@angular/forms';\r\n\r\nimport { UserData, UserDetails, Users, User, UserUpdate, UserAccount } from '../../models/userData';\r\nimport { MeData, Me } from '../../models/meData';\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\n@Component({\r\n selector: 'app-my-account',\r\n templateUrl: './my-account.component.html',\r\n styleUrls: ['./my-account.component.css'],\r\n providers: [ OfficesUsersRolesService]\r\n})\r\nexport class MyAccountComponent implements OnInit {\r\n rForm: FormGroup;\r\n me: Me;\r\n meSelected: any;\r\n passwordChange: boolean = false;\r\n\r\n constructor(public snackBar: MatSnackBar, public userSessionService: UserSessionService, public officesUsersRolesService: OfficesUsersRolesService, private fb: FormBuilder) {\r\n\r\n\r\n this.rForm = fb.group({\r\n\r\n 'firstName': [null, Validators.required],\r\n 'surname': [null, Validators.required],\r\n 'emailAddress': [null, Validators.required],\r\n 'changePassword': [false, Validators.required],\r\n 'password': [{ value: '', disabled: true }, Validators.required],\r\n 'confirmPassword': [{ value: '', disabled: true }, Validators.required]\r\n }\r\n , { validator: this.checkIfMatchingPasswords('password', 'confirmPassword', 'changePassword') });\r\n\r\n }\r\n checkIfMatchingPasswords(passwordKey: string, passwordConfirmationKey: string, changePassword: string) {\r\n\r\n return (group: FormGroup) => {\r\n \r\n let passwordInput = group.controls[passwordKey],\r\n passwordConfirmationInput = group.controls[passwordConfirmationKey],\r\n changeToggle = group.controls[changePassword];\r\n\r\n\r\n console.log(passwordInput.value + ' ' + passwordConfirmationInput.value);\r\n console.log(changeToggle.value);\r\n if (changeToggle.value) {\r\n if (passwordInput.value === passwordConfirmationInput.value) {\r\n return passwordConfirmationInput.setErrors(null);\r\n }\r\n else {\r\n return passwordConfirmationInput.setErrors({ notEquivalent: true })\r\n \r\n }\r\n } \r\n }\r\n }\r\n checkPassword(state) {\r\n this.passwordChange = state;\r\n if (state) {\r\n this.rForm.controls['password'].enable();\r\n this.rForm.controls['confirmPassword'].enable();\r\n } else {\r\n this.rForm.controls['password'].disable();\r\n this.rForm.controls['confirmPassword'].disable();\r\n }\r\n }\r\n ngOnInit() {\r\n this.getOwnerUser();\r\n this.meSelected = new UserAccount();\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 4000,\r\n });\r\n }\r\n\r\n private getOwnerUser() {\r\n this.userSessionService.getMe().subscribe(resp => {\r\n this.me = resp.user[0];\r\n this.getMe(this.me.userId);\r\n });\r\n }\r\n private getMe(userId: number) {\r\n this.officesUsersRolesService.getUsers(userId, '0', 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n this.meSelected = resp.userDetails.users[0];\r\n this.meSelected.password = '';\r\n this.meSelected.confirmPassword = '';\r\n this.meSelected.changePassword = false;\r\n });\r\n }\r\n\r\n updateMe(post) {\r\n\r\n\r\n this.userSessionService.updateBasicDetails(this.meSelected.userId, this.meSelected).subscribe(resp => {\r\n //this.listOfMovements= new MovementDetails();\r\n // this.listOfMovements= resp.movementDetails;\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.getOwnerUser();\r\n this.openSnackBar(\"Account updated\");\r\n }\r\n\r\n });\r\n }\r\n}\r\n","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ type.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ status.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n

No invoices returned, please change the filter or create an invoice.

\\r\\n
\\r\\n\\r\\n 0\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Invoice Number\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Date Created\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Status\\r\\n \\r\\n Line Items\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n \\r\\n Total\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n
\\r\\n {{invoice.invoiceNo}}\\r\\n \\r\\n {{invoice.createdDate | amDateFormat:'LL'}}\\r\\n \\r\\n {{invoice.status}}\\r\\n \\r\\n {{invoice.lineItems.length}}\\r\\n \\r\\n {{invoice.totalInvoiceAmount | currency:'EUR'}}\\r\\n
\\r\\n 0\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-finalise-invoice-dialog',\r\n templateUrl: './finalise-invoice-dialog.component.html',\r\n styleUrls: ['./finalise-invoice-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class FinaliseInvoiceDialogComponent implements OnInit {\r\n invoice: Invoice;\r\nloading: boolean = false;\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n\r\n this.invoice = this.data.invoice;\r\n\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n finalise() {\r\n\r\n this.loading = true;\r\n\r\n this.invoicingService.finaliseInvoice(this.invoice.invoiceId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n this.openSnackBar(\"Invoice Finalised\");\r\n this.loading = false;\r\n this.dialogRef.close(\"email\");\r\n\r\n }\r\n\r\n\r\n })\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\n\r\nimport { TemplatesService } from '../../services/templates.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { TemplateData, Templates, Template } from '../../models/templateData';\r\nimport { ViewTemplateDialogComponent } from '../../components/view-template-dialog/view-template-dialog.component';\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\n\r\n@Component({\r\n selector: 'app-templates',\r\n templateUrl: './templates.component.html',\r\n styleUrls: ['./templates.component.css'],\r\n providers: [TemplatesService, UserSessionService, ClientsContactsService]\r\n})\r\nexport class TemplatesComponent implements OnInit {\r\n selectedClient: number = 0;\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n listOfTemplates: Templates[];\r\n noOfTemplates: number = 0;\r\n clientId: number = 0;\r\n filteredClients: ClientAutocomplete[] = [];\r\n isActiveFilter: number = 1;\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n isGlobalFilter: number = 0;\r\n globalStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n rForm: FormGroup;\r\n \r\n\r\n constructor(public templatesService: TemplatesService, public snackBar: MatSnackBar, public dialog: MatDialog, public clientsContactsService: ClientsContactsService, public userSessionService: UserSessionService, private fb: FormBuilder) {\r\n\r\n this.rForm = fb.group({\r\n 'clientAutocomplete': [null]\r\n });\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n this.rForm.controls['clientAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientAutocomplete'].value);\r\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id) );\r\n\r\n this.setClient(this.clientId)\r\n\r\n this.getTemplates(0, this.officeId, this.selectedClient, this.isGlobalFilter, this.isActiveFilter);\r\n }\r\n\r\n openSnackBarError(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n\r\n });\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n setClient(client) {\r\n \r\n if (client.clientId > 0) {\r\n this.selectedClient = client.clientId;\r\n } else {\r\n this.selectedClient = 0\r\n }\r\n }\r\n\r\n reset(){\r\n this.selectedClient = 0;\r\n this.isActiveFilter = 0;\r\n this.isGlobalFilter = 0;\r\n this.getTemplates(0, this.officeId, this.selectedClient, this.isGlobalFilter, this.isActiveFilter);\r\n\r\n }\r\n\r\n public getTemplates(templateId: number, officeId: number, clientId: number, global: number, isActive: number) {\r\n\r\n this.templatesService.getTemplates(templateId,'0', officeId, clientId, global, isActive).subscribe(resp => {\r\n \r\n if(resp.errors.length > 0){\r\n this.openSnackBarError(resp.errors[0].error);\r\n \r\n }else{\r\n this.listOfTemplates= resp.templates;\r\n \r\n }\r\n });\r\n\r\n }\r\n\r\n viewTemplatetDialog(template): void {\r\n \r\n let dialogRef = this.dialog.open(ViewTemplateDialogComponent, {\r\n width: '1000px',\r\n data: { templateData: template }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.getTemplates(0, this.officeId, this.selectedClient, this.isGlobalFilter, this.isActiveFilter);\r\n });\r\n \r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\nimport { MovementData, MovementDetails, Movements, Movement } from '../models/movementData';\r\n\r\n\r\n@Injectable()\r\nexport class MovementsService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getMovements(movementId:number, clientId: number, isActive:number, startDate: any, endDate: any, sortId: number, sortDir: string, pageNo:number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/movement/\" + movementId + '/' + clientId + '/' + isActive + '/' + startDate + '/' + endDate + '/' + sortId + '/' + sortDir + '/' + pageNo );\r\n }\r\n csvMovements(movementId:number, clientId: number, isActive:number, startDate: any, endDate: any, sortId: number, sortDir: string ) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvFormovement/\" + movementId + '/' + clientId + '/' + isActive + '/' + startDate + '/' + endDate + '/' + sortId + '/' + sortDir, {headers: new HttpHeaders().set('Content-Type', 'application/pdf'), responseType: 'blob'});\r\n }\r\n clientMovements(clientId: number, isActive:number, startDate: any, endDate: any): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/clientMovements/\" + clientId + '/' + isActive + '/' + startDate + '/' + endDate );\r\n }\r\n addMovements(movementData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/movement/add\", movementData );\r\n }\r\n updateMovements(movementId: number, movementData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/movement/update/\" + movementId, movementData );\r\n }\r\n\r\n}\r\n\r\n\r\n","export default \"
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Invoice Settings\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

No settings have currently been added.\\r\\n
\\r\\n
Click the button below to generate default settings to get started.

\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Invoice Settings\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ payment.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user.userName }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LW5vdGljZS1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\r\\n

Message Details

\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Client:\\r\\n
{{messageData.clientName}}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Contact:\\r\\n
{{messageData.contactName}}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Message For:\\r\\n
{{messageData.messageFor}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Caller Name:\\r\\n
{{messageData.callerName}}
\\r\\n
\\r\\n
\\r\\n \\r\\n Caller Phone:\\r\\n
{{messageData.phoneNo}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Caller Email:\\r\\n
{{messageData.email}}
\\r\\n
\\r\\n
\\r\\n \\r\\n Caller Company:\\r\\n
{{messageData.company}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Caller Reference:\\r\\n
{{messageData.reference}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Created:\\r\\n
{{createdDate | amLocal | amDateFormat: 'DD/MM/YYYY HH:mm'}}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Taken:\\r\\n
{{dateTaken | amLocal | amDateFormat: 'DD/MM/YYYY HH:mm'}}
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n Taken By:\\r\\n
{{messageData.userName}} ({{messageData.officeName}})
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n Message:\\r\\n
\\r\\n
{{messageData.message}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Delivery Details:\\r\\n

{{messageData.responseMessage}}

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Delivery status:\\r\\n

{{messageData.statusName}}

\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

Resend

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{contact.fullName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{delivery.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n EoD Delivery\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{messageData.message.length}} / {{smsLimit - (callerLength + phoneLength + companyLength + emailLength + referenceLength)}}\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\";","export default \"
\\r\\n\\r\\n \\r\\n

Invoice Product

\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ type.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Global\\r\\n
\\r\\n
\\r\\n\\r\\n Active\\r\\n
\\r\\n
\\r\\n Display in Invoice\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ taxcode.code }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\nimport { ProductTypesData, ProductTypes, ProductType } from '../../models/productTypesData';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-view-invoice-product-dialog',\r\n templateUrl: './view-invoice-product-dialog.component.html',\r\n styleUrls: ['./view-invoice-product-dialog.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService, ClientsContactsService, UserSessionService]\r\n})\r\nexport class ViewInvoiceProductDialogComponent implements OnInit {\r\n product: Product;\r\n rForm: FormGroup;\r\n listOfTaxCodes: TaxCode[] = [];\r\n listOfProductTypes: ProductType[] = [];\r\n officeId: number = 0;\r\n me: any;\r\n navRoleOffice: boolean = false;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n disabled: boolean = true;\r\n\r\n constructor(public clientsContactsService: ClientsContactsService, public userSessionService:UserSessionService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n this.rForm = fb.group({\r\n 'productName': [null, Validators.required],\r\n 'productCode': [null, Validators.required],\r\n 'description': [null, Validators.required],\r\n 'unitCost': [null, Validators.required],\r\n 'includedMessages': [null, Validators.required],\r\n 'messageCost': [null, Validators.required],\r\n 'isGlobal': [false],\r\n 'taxId': [null, Validators.required],\r\n 'productTypeId': [null, Validators.required],\r\n 'isActive': [null, Validators.required],\r\n 'isDisplayInvoice': [null, Validators.required],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getMe();\r\n this.product = new Product();\r\n\r\n this.product.officeId = this.data.product.officeId;\r\n this.product = this.data.product;\r\n\r\n this.checkValue(this.product.productTypeId)\r\n\r\n this.getTaxRates();\r\n this.getProductTypes();\r\n }\r\n checkValue(value: number) {\r\n\r\n setTimeout(() => {\r\n const ctrl = this.rForm.get('messageCost');\r\n const ctrl1 = this.rForm.get('includedMessages');\r\n\r\n if (value === 1) {\r\n ctrl.enable();\r\n ctrl1.enable();\r\n } else {\r\n ctrl.disable();\r\n ctrl1.disable();\r\n }\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n getMe() {\r\n //console.log(\"header calling\");\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n //this.me = new Me();\r\n\r\n\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n const global = this.rForm.get('isGlobal');\r\n global.disable();\r\n if (arrayOfRoles.includes(3)) {\r\n this.navRoleOffice = true;\r\n global.disable();\r\n }\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleInvoicing = true;\r\n global.disable();\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n global.disable();\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n this.navRoleHeadOffice = true;\r\n \r\n global.enable();\r\n\r\n }\r\n }\r\n //this.userSessionService.updateUser(resp);\r\n });\r\n }\r\n\r\n\r\n getTaxRates() {\r\n\r\n this.clientsContactsService.getTaxCode(0, 0, 0).subscribe(resp => {\r\n\r\n this.listOfTaxCodes = resp.taxCodes;\r\n\r\n })\r\n\r\n }\r\n\r\n getProductTypes() {\r\n\r\n this.invoicingService.getProductTypes(0, 0, 0).subscribe(resp => {\r\n\r\n this.listOfProductTypes = resp.productTypes;\r\n\r\n })\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n updateInvoiceProduct(post) {\r\n\r\n this.invoicingService.updateInvoiceProduct(this.product.productId, this.product).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Product updated\");\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n\r\n })\r\n\r\n\r\n }\r\n}\r\n","export class ContactData{\r\n contactDetails: ContactDetails | null;\r\n errors: any[] | null; \r\n}\r\nexport class ContactDetails{\r\n contacts: Contacts[];\r\n totalCount: number;\r\n}\r\nexport class Contacts{\r\n clientId: number;\r\n clientName: string;\r\n contactId: number;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n deliveryTypeId: number;\r\n deliveryTypeName: string;\r\n emailAddress1: string;\r\n emailAddress2: string;\r\n faxNo: string;\r\n firstName: string;\r\n fullName: string;\r\n isActive: boolean;\r\n isDefaultContact: boolean;\r\n isEmailAddress1Eod: boolean;\r\n isEmailAddress1Mod: boolean;\r\n isEmailAddress1Private: boolean;\r\n isEmailAddress2Eod: boolean;\r\n isEmailAddress2Mod: boolean;\r\n isEmailAddress2Private: boolean;\r\n isFaxNoPrivate: boolean;\r\n isMobileNoPrivate: boolean;\r\n isPhoneNoPrivate: boolean;\r\n isPrinciple: boolean;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: number | null;\r\n lastUpdatedDate: string | null;\r\n mobileNo: string;\r\n phoneNo: string;\r\n position: string;\r\n surname: string;\r\n title: string;\r\n totalCount: number;\r\n}\r\nexport class Contact{\r\n clientId: number;\r\n clientName: string;\r\n contactId: number;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n deliveryTypeId: number;\r\n deliveryTypeName: string;\r\n emailAddress1: string;\r\n emailAddress2: string;\r\n faxNo: string;\r\n firstName: string;\r\n fullName: string;\r\n isActive: boolean;\r\n isDefaultContact: boolean;\r\n isEmailAddress1Eod: boolean;\r\n isEmailAddress1Mod: boolean;\r\n isEmailAddress1Private: boolean;\r\n isEmailAddress2Eod: boolean;\r\n isEmailAddress2Mod: boolean;\r\n isEmailAddress2Private: boolean;\r\n isFaxNoPrivate: boolean;\r\n isMobileNoPrivate: boolean;\r\n isPhoneNoPrivate: boolean;\r\n isPrinciple: boolean;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: number | null;\r\n lastUpdatedDate: string | null;\r\n mobileNo: string;\r\n phoneNo: string;\r\n position: string;\r\n surname: string;\r\n title: string;\r\n totalCount: number;\r\n showPhone?: boolean = false;\r\n showMobile?: boolean = false;\r\n showEmail1?: boolean = false;\r\n showEmail2?: boolean = false;\r\n showFax?: boolean = false;\r\n isMovement?: boolean = false;\r\n}\r\nexport class ContactsAutocomplete{\r\n contacts: ContactAutocomplete[] | null;\r\n errors: any[] | null;\r\n}\r\nexport class ContactAutocomplete{\r\n contactId:number;\r\n contactName: string;\r\n\r\n}","import { Component, OnInit } from '@angular/core';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { BehaviorSubject , Observable } from 'rxjs';\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { FormControl } from '@angular/forms';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\n\n\n\nimport { TemplatesService } from '../../services/templates.service';\nimport { UserSessionService } from '../../services/user-session.service';\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\n\nimport { TemplateData, Templates, Template } from '../../models/templateData';\nimport { ViewTemplateDialogComponent } from '../../components/view-template-dialog/view-template-dialog.component';\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\n\n@Component({\n selector: 'app-client-templates',\n templateUrl: './client-templates.component.html',\n styleUrls: ['./client-templates.component.css'],\n providers: [TemplatesService, UserSessionService, ClientsContactsService]\n})\nexport class ClientTemplatesComponent implements OnInit {\n\n selectedClient: number = 0;\n officeIdSubject: Observable;\n officeId: number;\n listOfTemplates: Templates[];\n noOfTemplates: number = 0;\n clientId: number = 0;\n filteredClients: ClientAutocomplete[] = [];\n isActiveFilter: number = 1;\n activeStates = [\n { value: 0, viewValue: 'All' },\n { value: 1, viewValue: 'Active' },\n { value: 2, viewValue: 'Inactive' }\n ];\n\n rForm: FormGroup;\n \n\n constructor(public templatesService: TemplatesService, public snackBar: MatSnackBar, public dialog: MatDialog, public clientsContactsService: ClientsContactsService, public userSessionService: UserSessionService, private fb: FormBuilder) { \n this.rForm = fb.group({\n 'clientAutocomplete': [null]\n });\n\n this.officeIdSubject = userSessionService.getOfficeId();\n\n this.rForm.controls['clientAutocomplete'].valueChanges\n .subscribe(name => {\n console.log(this.rForm.controls['clientAutocomplete'].value);\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\n return this.filteredClients = null;\n } else {\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 0, 0)\n .subscribe(res => {\n return this.filteredClients = res.clients\n })\n }\n\n });\n\n }\n\n ngOnInit() {\n \n this.officeIdSubject.subscribe(id => this.officeId = Number(id) );\n\n this.setClient(this.clientId)\n\n //this.getTemplates(0, this.officeId, this.selectedClient, this.isGlobalFilter, this.isActiveFilter);\n }\n\n openSnackBarError(message: string) {\n this.snackBar.open(message, \"close\", {\n\n });\n }\n displayFnClients(client: ClientAutocomplete): any {\n return client ? client.clientName : client;\n }\n setClient(client) {\n \n if (client.clientId > 0) {\n this.selectedClient = client.clientId;\n } else {\n this.selectedClient = 0\n }\n }\n\n reset(){\n this.selectedClient = this.clientId;\n this.isActiveFilter = 1;\n\n this.getTemplates(0, this.officeId, this.clientId, 2, this.isActiveFilter);\n\n }\n\n public getTemplates(templateId: number, officeId: number, clientId: number, global: number, isActive: number) {\n\n this.templatesService.getTemplates(templateId,'0', 0, clientId, 2, isActive).subscribe(resp => {\n \n if(resp.errors.length > 0){\n this.openSnackBarError(resp.errors[0].error);\n \n }else{\n this.listOfTemplates= resp.templates;\n \n }\n });\n\n }\n\n viewTemplatetDialog(template): void {\n \n let dialogRef = this.dialog.open(ViewTemplateDialogComponent, {\n width: '1000px',\n data: { templateData: template }\n });\n dialogRef.afterClosed().subscribe(result => {\n\n this.getTemplates(0, 0, this.clientId, 2, this.isActiveFilter);\n });\n \n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJteS1hY2NvdW50LmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\nimport * as moment from 'moment';\r\n\r\nimport { TotalMessagesByUserAndDateData, UsersReporting } from '../../models/totalMessagesByUserAndDateData';\r\nimport { TotalMessagesByClientAndDateData, ClientsReporting } from '../../models/totalMessagesByClientAndDateData';\r\nimport { TodayTotalMessagesData, todayTotalMessages } from '../../models/todayTotalMessagesData';\r\n\r\nimport { ReportingService } from '../../services/reporting.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-message-stats',\r\n templateUrl: './message-stats.component.html',\r\n styleUrls: ['./message-stats.component.css'],\r\n providers: [ReportingService, UserSessionService]\r\n})\r\nexport class MessageStatsComponent implements OnInit {\r\n\r\n todaysDate: any;\r\n dayTotal: number = 0;\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n\r\n public barChartColors:Array = [\r\n { // grey\r\n backgroundColor: '#7986CB',\r\n borderColor: 'rgba(148,159,177,1)',\r\n pointBackgroundColor: 'rgba(148,159,177,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(148,159,177,0.8)'\r\n },\r\n { // dark grey\r\n backgroundColor: '#7986CB',\r\n borderColor: 'rgba(77,83,96,1)',\r\n pointBackgroundColor: 'rgba(77,83,96,1)',\r\n pointBorderColor: '#fff',\r\n pointHoverBackgroundColor: '#fff',\r\n pointHoverBorderColor: 'rgba(77,83,96,1)'\r\n }\r\n ];\r\n\r\n public barChartOptions:any = {\r\n scaleShowVerticalLines: false,\r\n responsive: false,\r\n layout: {\r\n padding: {\r\n left: 50,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n }\r\n },\r\n scales: {\r\n xAxes: [{\r\n ticks: {\r\n beginAtZero: true,\r\n stepSize: 10,\r\n min: 0,\r\n }\r\n }],\r\n \r\n \r\n }\r\n };\r\n public barChartLabels:string[] = new Array();\r\n public barChartLabels2:string[] = new Array();\r\n public barChartType:string = 'horizontalBar';\r\n public barChartLegend:boolean = false;\r\n\r\n public lineChartLabels:Array = [];\r\n public lineChartOptions:any = {\r\n responsive: false,\r\n elements: {\r\n line: {\r\n tension: 0, // disables bezier curves\r\n },\r\n },\r\n scales: {\r\n yAxes: [{\r\n ticks: {\r\n stepSize: 10,\r\n min: 0,\r\n }\r\n }]\r\n \r\n }\r\n };\r\n \r\n public barChartData:any[] = [\r\n {data: '', label: 'Users'}\r\n ];\r\n public barChartData2:any[] = [\r\n {data: '', label: 'Clients'}\r\n ];\r\n\r\n public lineChartData:Array = [\r\n {data: '', label: 'Messages'}\r\n ];\r\n\r\n clientReportingStats: ClientsReporting[] = [];\r\n userReportingStats: UsersReporting[] = [];\r\n todayStats: todayTotalMessages[] = [];\r\n userData:any[] = new Array();\r\n todayData:any[] = new Array();\r\n clientData:any[] = new Array();\r\n userLabel:any[] = new Array();\r\n clientLabel:any[] = new Array();\r\n\r\n public lineChartLegend:boolean = false;\r\n public lineChartType:string = 'line';\r\n\r\n\r\n constructor(public snackBar: MatSnackBar, public reportingService: ReportingService, public userSessionService: UserSessionService) {\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n }\r\n\r\n ngOnInit() {\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\nthis.todaysDate = moment().format('YYYY-MM-DD');\r\n \r\n this.getTotalMessagesByUserAndDate();\r\n this.getTotalMessagesByClientAndDate();\r\n this.getTodayTotalMessages();\r\n }\r\n getTodayTotalMessages() {\r\n this.reportingService.getTodayTotalMessages(this.officeId).subscribe(resp => {\r\n this.todayStats = resp.messages.todayTotalMessages;\r\n this.dayTotal = resp.messages.messageTotal;\r\n\r\n this.todayStats.forEach((messages) => {\r\n this.todayData.push(messages.totalMessages);\r\n this.lineChartLabels.push(messages.timeId);\r\n });\r\n this.lineChartData = [\r\n {data: this.todayData, label: 'Messages'}\r\n ];\r\n });\r\n }\r\n getTotalMessagesByUserAndDate() {\r\n this.reportingService.getTotalMessagesByUserAndDate(0, 0, this.todaysDate, this.todaysDate).subscribe(resp => {\r\n this.userReportingStats = resp.users;\r\n\r\n this.userReportingStats.forEach((user) => {\r\n this.userData.push(user.totalMessages);\r\n this.barChartLabels.push(user.userName);\r\n });\r\n this.barChartData = [\r\n {data: this.userData, label: 'Users'}\r\n ];\r\n });\r\n }\r\n\r\n\r\n getTotalMessagesByClientAndDate() {\r\n this.reportingService.getTotalMessagesByClientAndDate(0, this.todaysDate, this.todaysDate, 10).subscribe(resp => {\r\n this.clientReportingStats = resp.clients;\r\n\r\n this.clientReportingStats.forEach((client) => {\r\n this.clientData.push(client.totalMessages);\r\n this.barChartLabels2.push(client.clientName);\r\n });\r\n this.barChartData2 = [\r\n {data: this.clientData, label: 'Clients'}\r\n ];\r\n });\r\n }\r\n\r\n \r\n // events\r\n public chartClicked(e:any):void {\r\n console.log(e);\r\n }\r\n \r\n public chartHovered(e:any):void {\r\n console.log(e);\r\n }\r\n \r\n\r\n\r\n}\r\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\nimport { UserData, Users, User } from '../../models/userData';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, InvoiceSettings } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-invoice-settings',\r\n templateUrl: './invoice-settings.component.html',\r\n styleUrls: ['./invoice-settings.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService, ClientsContactsService, OfficesUsersRolesService, UserSessionService]\r\n})\r\nexport class InvoiceSettingsComponent implements OnInit {\r\n invoiceSettings: InvoiceSettings;\r\n rForm: FormGroup;\r\n paymentTypes: PaymentTypes[];\r\n myControlOwners: FormControl = new FormControl();\r\n filteredOwners: User[] = [];\r\n officeId: number = 0;\r\n newInvoiceSettings: InvoiceSettings;\r\n office: Office;\r\n\r\n constructor(private fb: FormBuilder, public invoicingService: InvoicingService, public userSessionService: UserSessionService, public officesUsersRolesService: OfficesUsersRolesService, public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar) {\r\n this.rForm = fb.group({\r\n\r\n 'creditNotePrefix': [null, Validators.required],\r\n 'invoiceFooter': [null, Validators.required],\r\n 'invoiceMessage': [null, Validators.required],\r\n 'invoiceEmailTemplate': [null, Validators.required],\r\n 'invoicePrefix': [null, Validators.required],\r\n 'invoiceTerms': [null],\r\n 'isActive': [null],\r\n 'name': [null, Validators.required],\r\n 'officeId': [null],\r\n 'ownerId': [null],\r\n 'paymentTypeId': [null, Validators.required],\r\n 'vatRegNumber': [null, Validators.required],\r\n 'fromAddress': [null, Validators.required],\r\n 'replyAddress': [null, Validators.required],\r\n 'server': [null, Validators.required],\r\n 'userName': [null, Validators.required],\r\n 'port': [null, Validators.required],\r\n 'password': [null, Validators.required],\r\n });\r\n\r\n\r\n this.myControlOwners.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlOwners.value);\r\n if (this.myControlOwners.value === '' || typeof this.myControlOwners.value != 'string') {\r\n return this.filteredOwners = null;\r\n } else {\r\n this.officesUsersRolesService.getUsers(0, this.myControlOwners.value, this.officeId, 1, 1, 'ASC', 1)\r\n .subscribe(res => {\r\n\r\n if (res.errors.length > 0) {\r\n this.openSnackBar(res.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n \r\n \r\n return this.filteredOwners = res.userDetails.users\r\n }\r\n \r\n })\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.invoiceSettings = new InvoiceSettings();\r\n this.getPaymentTypes();\r\n\r\n this.getInvoiceSettings(this.officeId);\r\n\r\n }\r\n\r\n\r\n getInvoiceSettings(officeId: number) {\r\n\r\n this.invoicingService.getInvoiceSettings(0, officeId, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n\r\n this.invoiceSettings = resp.invoiceSettings[0];\r\n console.log(this.invoiceSettings);\r\n if(!this.invoiceSettings){\r\n\r\n }else{\r\n if (this.invoiceSettings.ownerId === null) {\r\n \r\n }else{\r\n this.getOwner(this.invoiceSettings.ownerId);\r\n }\r\n }\r\n\r\n }\r\n\r\n\r\n })\r\n }\r\n\r\n displayFn(user: User): string {\r\n //this.selectedOption = user;\r\n\r\n return user ? user.userName : '';\r\n\r\n }\r\n\r\n generateSettings() {\r\n this.newInvoiceSettings = new InvoiceSettings();\r\n this.office = new Office();\r\n\r\n this.officesUsersRolesService.getOffices(this.officeId, 0, 0, 1).subscribe(resp => {\r\n\r\n this.office = resp.officeDetails.offices[0];\r\n\r\n\r\n this.newInvoiceSettings.officeId = this.officeId;\r\n this.newInvoiceSettings.name = \"Default Settings Template for \";\r\n //this.newInvoiceSettings.ownerId = null;\r\n this.newInvoiceSettings.vatRegNumber = \"DEMO \" + this.office.name;\r\n this.newInvoiceSettings.invoicePrefix = \"DEMO \" + this.office.name;\r\n this.newInvoiceSettings.invoiceTerms = \"DEMO \" + this.office.name;\r\n this.newInvoiceSettings.invoiceMessage = \"DEMO \" + this.office.name;\r\n this.newInvoiceSettings.invoiceFooter = \"DEMO \" + this.office.name;\r\n this.newInvoiceSettings.creditNotePrefix = \"DEMO \" + this.office.name;\r\n this.newInvoiceSettings.paymentTypeId = 1;\r\n this.newInvoiceSettings.server = this.office.serverName;\r\n this.newInvoiceSettings.port = String(this.office.port);\r\n this.newInvoiceSettings.password = String(this.office.password);\r\n this.newInvoiceSettings.userName = this.office.userName;\r\n this.newInvoiceSettings.fromAddress = \"demo@demo.com\";\r\n this.newInvoiceSettings.replyAddress = \"demo@demo.com\";\r\n this.newInvoiceSettings.password = this.office.smsAccountPassword;\r\n\r\n\r\n this.invoicingService.addInvoiceSettings(this.newInvoiceSettings).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n\r\n this.openSnackBar(\"Settings generated\");\r\n this.ngOnInit();\r\n }\r\n\r\n\r\n })\r\n\r\n })\r\n }\r\n\r\n getOwner(userId: number) {\r\n\r\n this.officesUsersRolesService.getUsers(userId, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n this.myControlOwners.setValue({ ownerId: resp.userDetails.users[0].userId, userName: resp.userDetails.users[0].userName })\r\n }\r\n })\r\n\r\n }\r\n\r\n setOwner(event) {\r\nconsole.log(event);\r\n this.invoiceSettings.ownerId = event.userId;\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getPaymentTypes() {\r\n\r\n this.clientsContactsService.getPaymentType(0, 0, 0).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.paymentTypes = resp.paymentTypes;\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n updateInvoiceSettings(post) {\r\n\r\n this.invoicingService.updateInvoiceSettings(this.invoiceSettings.invoiceSettingId, this.invoiceSettings).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Settings updated\");\r\n\r\n }\r\n })\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjb250YWN0cy1kZXRhaWwuY29tcG9uZW50LmNzcyJ9 */\";","export default \"
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n

No contacts found, please change the filter or create a client.

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameMobile PhonePositionEmailEODDefault ContactPrincipleActive
{{contact.fullName}}\\r\\n {{contact.mobileNo}}\\r\\n \\r\\n {{contact.mobileNo | hideVal}}\\r\\n {{contact.mobileNo}}\\r\\n \\r\\n file_copy\\r\\n \\r\\n {{contact.phoneNo}}\\r\\n \\r\\n {{contact.phoneNo | hideVal}}\\r\\n {{contact.phoneNo}}\\r\\n \\r\\n file_copy\\r\\n {{contact.position}}\\r\\n {{contact.emailAddress1}}\\r\\n \\r\\n {{contact.emailAddress1 | hideVal}}\\r\\n {{contact.emailAddress1}}\\r\\n \\r\\n file_copy\\r\\n \\r\\n \\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\";","export class OfficeData{\r\n errors: any[] | null;\r\n officeDetails: OfficeDetails | null;\r\n}\r\nexport class OfficeDetails{\r\n offices: Offices[];\r\n totalCount: number;\r\n}\r\nexport class Offices{\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n country: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n emailAddress: string;\r\n isActive: boolean;\r\n isHeadOffice: boolean = false;\r\n isOutOfHours: boolean = false;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: number | null;\r\n lastUpdatedDate: string | null;\r\n name: string;\r\n officeId: number;\r\n ownerId: number;\r\n phoneNo: string;\r\n postCode: string;\r\n referenceNo: string;\r\n totalCount: number;\r\n townCity: string;\r\n isSelected?: boolean = false;\r\n isUseSSL: boolean;\r\n port: string | null;\r\n serverName: string | null;\r\n userName: string;\r\n password: string;\r\n smsAccountPassword: string;\r\n smsAccountUserName: string;\r\n smsSubAccountName: string;\r\n ownerUser:any;\r\n}\r\nexport class Office{\r\n addressLine1: string;\r\n addressLine2: string;\r\n addressLine3: string;\r\n country: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string; \r\n emailAddress: string;\r\n isActive: boolean;\r\n isHeadOffice: boolean = false;\r\n isOutOfHours: boolean = false;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: number | null;\r\n lastUpdatedDate: string | null;\r\n name: string;\r\n officeId: number;\r\n ownerId: number;\r\n phoneNo: string;\r\n postCode: string;\r\n referenceNo: string;\r\n totalCount: number;\r\n townCity: string;\r\n isSelected?: boolean = false;\r\n isUseSSL: boolean;\r\n port: string | null;\r\n serverName: string | null;\r\n userName: string;\r\n password: string;\r\n smsAccountPassword: string;\r\n smsAccountUserName: string;\r\n smsSubAccountName: string;\r\n ownerUser:any;\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJmaW5hbGlzZS1pbnZvaWNlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtb2ZmaWNlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\r\\n

Add Credit Note

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\";","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\nimport { TotalMessagesByUserAndDateData, UsersReporting } from '../models/totalMessagesByUserAndDateData';\r\nimport { TotalMessagesByClientAndDateData, ClientsReporting } from '../models/totalMessagesByClientAndDateData';\r\nimport { TodayTotalMessagesData, Messages } from '../models/todayTotalMessagesData';\r\n\r\n@Injectable()\r\nexport class ReportingService {\r\n\r\n constructor(public http: HttpClient) { }\r\n \r\n getTotalMessagesByUserAndDate(userId:number, clientId: number, fromCreatedDate: string, toCreatedDate:string): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/totalMessagesByUserAndDate/\" + userId + '/' + clientId + '/' + fromCreatedDate + '/' + toCreatedDate );\r\n }\r\n getTotalMessagesByClientAndDate(clientId:number, fromCreatedDate: string, toCreatedDate:string, limit: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/totalMessagesByClientAndDate/\" + clientId + '/' + fromCreatedDate + '/' + toCreatedDate + '/' + limit);\r\n }\r\n getTodayTotalMessages(officeId:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/todayTotalMessages\" );\r\n }\r\n getCSVTotalMessagesByUserAndDate(userId:number, clientId: number, fromCreatedDate: string, toCreatedDate:string) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvForTotalMessagesByUserAndDate/\" + userId + '/' + clientId + '/' + fromCreatedDate + '/' + toCreatedDate, {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'} );\r\n }\r\n getCSVTotalMessagesByClientAndDate(clientId:number, fromCreatedDate: string, toCreatedDate:string) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvForTotalMessagesByClientAndDate/\" + clientId + '/' + fromCreatedDate + '/' + toCreatedDate, {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'} );\r\n }\r\n getCSVForMessagesCount(fromCreatedDate: string, toCreatedDate:string) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvForMessagesCount/\" + fromCreatedDate + '/' + toCreatedDate, {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'} );\r\n }\r\n getCSVForClients(fromCreatedDate: number, toCreatedDate:number) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvForClients/\" + fromCreatedDate + \"/\" + toCreatedDate, {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'} );\r\n }\r\n getCSVForInvoice(officeId: number, clientId: number, statusId: number, fromDate: any, endDate: any ) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvForInvoice/\" + officeId + \"/\" + clientId + \"/\" + statusId + \"/\" +fromDate + \"/\" + endDate , {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'} );\r\n }\r\n getCSVForInvoiceWithLineItems(officeId: number, clientId: number, statusId: number, fromDate: any, endDate: any ) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/csvForInvoiceWithLineItems/\" + officeId + \"/\" + clientId + \"/\" + statusId + \"/\" +fromDate + \"/\" + endDate , {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'} );\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Clients

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

No clients found, please change the filter or create a client.

\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n 0 && !loadingClients\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n 0 && !loadingClients\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Name\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n ReferenceBilling Date\\r\\n Start Date\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n TrialOut of HoursPayment TypeOfficesMaster Account
\\r\\n {{client.clientName}}\\r\\n {{client.clientAcronym}}{{client.billingDate | amLocal | amDateFormat: 'YYYY/MM/DD'}}{{client.serviceStartDate | amLocal | amDateFormat: 'YYYY/MM/DD'}}\\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n {{client.paymentTypeName}}\\r\\n \\r\\n \\r\\n {{office.officeName}}\\r\\n \\r\\n \\r\\n \\r\\n done\\r\\n clear\\r\\n
\\r\\n 0 && !loadingClients\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\n\r\n\r\nimport { AddClientDialogComponent } from '../../components/add-client-dialog/add-client-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-clients',\r\n templateUrl: './clients.component.html',\r\n styleUrls: ['./clients.component.css'],\r\n providers: [ClientsContactsService, OfficesUsersRolesService, UserSessionService]\r\n})\r\nexport class ClientsComponent implements OnInit {\r\n length = 100;\r\n pageSize = 10;\r\n pageSizeOptions = [5, 10, 25, 100];\r\n filteredUsers: ClientsAutocomplete[];\r\n selectedOption: ClientAutocomplete;\r\n filteredClients: ClientAutocomplete[] = [];\r\n options = [];\r\n selectedClient: Client;\r\n sourceTypes: SourceTypes[];\r\n paymentTypes: PaymentTypes[];\r\n taxCodes: TaxCodes[];\r\n listOfSourceTypes: SourceTypes[];\r\n listOfOffices: OfficeData;\r\n isActiveFilter: number = 1;\r\n isOutOfHoursFilter: number = 0;\r\n isTrialFilter: number = 0;\r\n isMasterFilter: number = 0;\r\n isVatFilter: number = 0;\r\n paymentFilter: number = 0;\r\n sourceFilter: number = 0;\r\n taxFilter: number = 0;\r\n officeSelected: any;\r\n paymentTypes2: PaymentTypes[];\r\n taxCodes2: TaxCodes[];\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n sortId: number = 1;\r\n sortDir: string = 'ASC';\r\n pageNo: number = 0;\r\n rForm: FormGroup;\r\n loadingClients: boolean = true;\r\n clientName: string = '';\r\n clientNameFinal: any = 0;\r\n\r\n activeStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n hourStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n trialStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n masterStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n vatStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n paymentStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n sourceStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n taxStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n\r\n // MdPaginator Output\r\n pageEvent: PageEvent;\r\n\r\n setPageSizeOptions(setPageSizeOptionsInput: string) {\r\n this.pageSizeOptions = setPageSizeOptionsInput.split(',').map(str => +str);\r\n }\r\n\r\n @Input() officeFilterId: Number = 0;\r\n listOfClients: Clients[];\r\n totalNoOfClients: any;\r\n constructor(public clientsContactsService: ClientsContactsService, public userSessionService: UserSessionService, public router: Router, public officesUsersRolesService: OfficesUsersRolesService, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n this.rForm = fb.group({\r\n 'clientAutocomplete': [null, Validators.required],\r\n });\r\n\r\n\r\n this.rForm.controls['clientAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientAutocomplete'].value);\r\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 0, 1)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n });\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n } \r\n\r\n myControl: FormControl = new FormControl();\r\n\r\n contactControl: FormControl = new FormControl();\r\n\r\n filteredOptions: Observable;\r\n\r\n filter(clientName: string): ClientAutocomplete[] {\r\n\r\n this.clientsContactsService.getClientsAutocomplete(clientName, 0, this.officeId, 0, 0).subscribe(resp => {\r\n this.options = [];\r\n //this.filteredUsers = resp.userDetails.users;\r\n\r\n resp.clients.forEach((clients) => {\r\n\r\n let client = new ClientAutocomplete();\r\n client = clients;\r\n this.options.push(client);\r\n });\r\n\r\n console.log(\"here \" + clientName);\r\n });\r\n\r\n return this.options.filter(option =>\r\n option.clientName.toLowerCase().indexOf(clientName.toLowerCase()) === 0);\r\n\r\n }\r\n\r\n displayFn(user: ClientAutocomplete): string {\r\n this.selectedOption = user;\r\n console.log(this.selectedOption);\r\n return user ? user.clientName : '';\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n\r\n changeDir(sortId) {\r\n if (this.sortDir === 'ASC') {\r\n this.sortDir = 'DESC';\r\n this.sortId = sortId;\r\n this.getClients(this.clientName, this.officeId, this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter, this.sortId, this.sortDir, this.pageNo);\r\n } else {\r\n this.sortDir = 'ASC';\r\n this.sortId = sortId;\r\n this.getClients(this.clientName, this.officeId, this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter, this.sortId, this.sortDir, this.pageNo);\r\n }\r\n\r\n }\r\n ngOnInit() {\r\n\r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n this.getOffice(this.officeId);\r\n this.paymentTypes = new Array();\r\n this.getSourceTypes();\r\n this.getTaxCodes();\r\n this.getPaymentTypes();\r\n\r\n this.getClients(this.clientName, this.officeId, this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter, this.sortId, this.sortDir, this.pageNo);\r\n\r\n this.filteredOptions = this.myControl.valueChanges\r\n .startWith(null)\r\n .map(user => user && typeof user === 'object' ? user.userName : user)\r\n .map(userName => userName ? this.filter(userName) : this.options.slice());\r\n }\r\n\r\n getSourceTypes() {\r\n this.clientsContactsService.getSourceType(0, 0, 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.sourceTypes = resp.sourceTypes;\r\n\r\n this.sourceTypes.forEach((type, i) => {\r\n\r\n this.sourceStates.push({ value: type.sourceTypeId , viewValue: type.name });\r\n\r\n });\r\n }\r\n\r\n });\r\n }\r\n getPaymentTypes() {\r\n this.clientsContactsService.getPaymentType(0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.paymentTypes = resp.paymentTypes;\r\n this.paymentTypes.forEach((type, i) => {\r\n\r\n this.paymentStates.push({ value: i + 1, viewValue: type.name });\r\n\r\n });\r\n }\r\n\r\n });\r\n\r\n }\r\n getOffice(officeId: number) {\r\n this.officesUsersRolesService.getOffices(officeId, '0', 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.officeSelected = resp.officeDetails.offices[0];\r\n }\r\n });\r\n }\r\n getTaxCodes() {\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.taxCodes = resp.taxCodes;\r\n this.taxCodes.forEach((type, i) => {\r\n\r\n this.taxStates.push({ value: i + 1, viewValue: type.code });\r\n\r\n });\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n setPage(event) {\r\n this.pageNo = event.pageIndex;\r\n console.log(event);\r\n this.getClients(this.clientName, this.officeId, this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter, this.sortId, this.sortDir, event.pageIndex + 1);\r\n }\r\n\r\n getClients(clientName: any, officeId: number, isActiveFilter: number, isTrialFilter: number, isMasterFilter: number, isOutOfHoursFilter: number, isVatFilter: number, paymentFilter: number, sourceFilter: number, taxFilter: number, sortId: number, sortDir: string, pageNo: number) {\r\n this.loadingClients = true;\r\n\r\n if(clientName === ''){\r\n this.clientNameFinal = 0;\r\n }else{\r\n this.clientNameFinal = clientName;\r\n\r\n }\r\n this.clientsContactsService.getClients(0, this.clientNameFinal, 0, officeId, isActiveFilter, isTrialFilter, isMasterFilter, isOutOfHoursFilter, isVatFilter, paymentFilter, sourceFilter, taxFilter, sortId, sortDir, pageNo).subscribe(resp => {\r\n this.loadingClients = false;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.totalNoOfClients = resp.clientDetails.totalCount;\r\n\r\n this.listOfClients = resp.clientDetails.clients;\r\n }\r\n \r\n });\r\n }\r\n\r\n reset() {\r\n this.isActiveFilter = 0;\r\n this.isOutOfHoursFilter = 0;\r\n this.isTrialFilter = 0;\r\n this.isVatFilter = 0;\r\n this.paymentFilter = 0;\r\n this.sourceFilter = 0;\r\n this.taxFilter = 0;\r\n this.isMasterFilter = 0;\r\n this.clientName = '';\r\n this.clientNameFinal = 0;\r\n this.getClients(this.clientName, this.officeId, this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter, this.sortId, this.sortDir, this.pageNo);\r\n\r\n }\r\n\r\n goToClient(client) {\r\n if (client.clientId > 0) {\r\n this.router.navigate(['/clients', client.clientId, 'tab', 0]);\r\n }\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n addClientDialog(): void {\r\n\r\n this.clientsContactsService.getSourceType(0, '0', 1).subscribe(resp => {\r\n\r\n this.listOfSourceTypes = resp.sourceTypes;\r\n this.officesUsersRolesService.getOffices(0, '0', 1, 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfOffices = resp;\r\n this.clientsContactsService.getPaymentType(0, 0, 1).subscribe(resp => {\r\n this.paymentTypes2 = resp.paymentTypes;\r\n\r\n\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n this.taxCodes2 = resp.taxCodes;\r\n\r\n\r\n let dialogRef = this.dialog.open(AddClientDialogComponent, {\r\n width: '90%',\r\n data: {\r\n sourceData: this.listOfSourceTypes,\r\n officeData: this.listOfOffices,\r\n officeSelected: this.officeSelected,\r\n paymentTypes: this.paymentTypes,\r\n taxCode: this.taxCodes\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log('The dialog was closed');\r\n this.reset();\r\n });\r\n\r\n });\r\n\r\n });\r\n\r\n }\r\n });\r\n });\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtcmVjdXJyaW5nLXByb2R1Y3RzLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

End of day sent automatically at 17:45\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

No notices returned, please change the filter or create a notice.

\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NoticeStart DateReminder DateEnd DateActive
\\r\\n {{notice.notice}}\\r\\n {{notice.startDate | amLocal | amDateFormat: 'YYYY-MM-DD'}}{{notice.reminderDate | amLocal | amDateFormat: 'YYYY-MM-DD'}}{{notice.endDate | amLocal | amDateFormat: 'YYYY-MM-DD'}}\\r\\n done\\r\\n clear\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhcHAuY29tcG9uZW50LmNzcyJ9 */\";","export class ClientData{\r\n clientDetails: ClientDetails | null;\r\n errors: any[] | null; \r\n clientId?: number;\r\n}\r\nexport class ClientDetails{\r\n totalCount: number;\r\n clients: Clients[];\r\n}\r\nexport class AddClientData{\r\n clientId: number;\r\n errors: any[] | null; \r\n}\r\nexport class Clients{\r\n addressLine1: string | null;\r\n addressLine2: string | null;\r\n addressLine3: string | null;\r\n answerScript: string | null;\r\n billingDate: string | null;\r\n billingFrequency: string;\r\n billingFrequencyId: number;\r\n clientAcronym: string;\r\n clientId: number;\r\n clientName: string;\r\n closeDate: string | null;\r\n clientCode: string;\r\n country: string;\r\n county: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n emergencyNo: string | null;\r\n faxNo: string | null;\r\n hangUpScript: string | null;\r\n instruction: string | null;\r\n internalDDI: string | null;\r\n isActive: boolean;\r\n isMasterAccount: boolean;\r\n isOutOfHours: boolean;\r\n isTrial:boolean;\r\n isInvoiceScheduled:boolean;\r\n isVatExempt: boolean;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: number | null;\r\n lastUpdatedDate: string | null;\r\n mainContactId: number | null;\r\n mainContactName: string | null;\r\n masterAccountId: number | null;\r\n masterAccountName: string;\r\n notes: string;\r\n offices: ClientOfficeRef[];\r\n paymentTypeId: number;\r\n paymentTypeName: string | null;\r\n phoneNo: string | null;\r\n postCode: string | null;\r\n serviceStartDate: string | null;\r\n privateUrl: string | null;\r\n webUrl: string;\r\n formUrl: string;\r\n sourceTypeId: number | null;\r\n sourceTypeName: number | null;\r\n tariffId: number | null;\r\n tarrifName: number | null;\r\n taxCode: number | null;\r\n taxId: number;\r\n totalCount: number;\r\n townCity: string;\r\n trialClosedDate: number | null;\r\n invoiceToEmails: string;\r\n financeContact: string;\r\n monthInQuarter: number;\r\n monthNumber: number;\r\n}\r\nexport class Client{\r\n addressLine1: string | null;\r\n addressLine2: string | null;\r\n addressLine3: string | null;\r\n answerScript: string | null;\r\n billingDate: string | null;\r\n billingFrequency: string;\r\n billingFrequencyId: number;\r\n clientAcronym: string;\r\n clientId: number;\r\n clientName: string;\r\n closeDate: string | null;\r\n clientCode: string;\r\n country: string;\r\n county: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n emergencyNo: string | null;\r\n faxNo: string | null;\r\n hangUpScript: string | null;\r\n instruction: string | null;\r\n internalDDI: string | null;\r\n isActive: boolean;\r\n isMasterAccount: boolean;\r\n isOutOfHours: boolean;\r\n isTrial:boolean;\r\n isInvoiceScheduled:boolean;\r\n isVatExempt: boolean;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: number | null;\r\n lastUpdatedDate: string | null;\r\n mainContactId: number | null;\r\n mainContactName: string | null;\r\n masterAccountId: number | null;\r\n masterAccountName: string;\r\n notes: string;\r\n offices: ClientOfficeRef[];\r\n paymentTypeId: number;\r\n paymentTypeName: string | null;\r\n phoneNo: string | null;\r\n postCode: string | null;\r\n serviceStartDate: string | null;\r\n privateUrl: string | null;\r\n webUrl: string;\r\n formUrl: string;\r\n sourceTypeId: number | null;\r\n sourceTypeName: number | null;\r\n tariffId: number | null;\r\n tarrifName: number | null;\r\n taxCode: number | null;\r\n taxId: number;\r\n totalCount: number;\r\n townCity: string;\r\n trialClosedDate: number | null;\r\n invoiceToEmails: string;\r\n financeContact: string;\r\n monthInQuarter: number;\r\n monthNumber: number;\r\n}\r\nexport class ClientOfficeRef{\r\n officeId: number;\r\n officeName: string;\r\n isPrimaryOwner: boolean;\r\n}\r\nexport class ClientsAutocomplete{\r\n clients: ClientAutocomplete[] | null;\r\n errors: any[] | null;\r\n}\r\nexport class ClientAutocomplete{\r\n clientId:number;\r\n clientName: string;\r\n\r\n}\r\nexport class SubAccountData{\r\n clients: SubAccount[]| null; \r\n errors: any[] | null; \r\n\r\n}\r\nexport class SubAccount{\r\n clientId: number;\r\n clientName: string;\r\n\r\n}\r\n\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem, EmailInvoiceData } from '../../models/invoiceData';\r\n\r\nimport { PaymentTypesData, PaymentTypes, PaymentType} from '../../models/paymentData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\n\r\n\r\n@Component({\r\n selector: 'app-change-invoice-tariff-dialog',\r\n templateUrl: './change-invoice-tariff-dialog.component.html',\r\n styleUrls: ['./change-invoice-tariff-dialog.component.css'],\r\n providers: [InvoicingService, ClientsContactsService]\r\n})\r\nexport class ChangeInvoiceTariffDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n invoiceData: Invoice;\r\n tariffId: number = 0;\r\n listOfTariffs: Products[] = [];\r\n\r\n constructor(private fb: FormBuilder, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n 'tariffId': ['', Validators.required]\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.invoiceData = this.data.invoice;\r\n this.getTariffs();\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getTariffs(){\r\n\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, 1, 0, 0, 1, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n \r\n } else {\r\n\r\n this.listOfTariffs = resp.invoiceProducts.products;\r\n\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n changePayment(post){\r\n\r\n this.invoicingService.changeInvoiceTariff(this.invoiceData.invoiceId, this.tariffId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoice tariff updated\");\r\n\r\n this.dialogRef.close();\r\n\r\n }\r\n })\r\n\r\n }\r\n\r\n}\r\n","// The file contents for the current environment will overwrite these during build.\r\n// The build system defaults to the dev environment which uses `environment.ts`, but if you do\r\n// `ng build --env=prod` then `environment.prod.ts` will be used instead.\r\n// The list of which env maps to which file can be found in `.angular-cli.json`.\r\n\r\nexport const environment = {\r\n production: false\r\n};\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJtZXNzYWdlcy5jb21wb25lbnQuY3NzIn0= */\";","export default \"
\\n \\n \\n
\\n
\\n \\n \\n \\n {{ state.viewValue }}\\n \\n \\n \\n\\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n \\n
\\n

No templates returned, please change the filter or create a template.

\\n
\\n\\n 0\\\">\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
MessageClientGlobalActiveAudit
{{template.message}}
{{template.clientName}}\\n done\\n clear\\n \\n done\\n clear\\n \\n Created: {{template.createdDate | amDateFormat:'LL'}} by {{template.createdBy}}\\n 0\\\">\\n
Last updated: {{template.lastUpdatedDate | amDateFormat:'LL'}} by {{template.lastUpdatedBy}}
\\n
\\n
\\n
\\n
\\n\\n\\n
\\n\";","import { Component, OnInit } from '@angular/core';\r\nimport { RouterModule, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-home',\r\n templateUrl: './home.component.html',\r\n styleUrls: ['./home.component.css']\r\n})\r\nexport class HomeComponent implements OnInit {\r\n\r\n constructor(public router:Router) { \r\n\r\n \r\n }\r\n\r\n ngOnInit() {\r\n console.log(this.router.url);\r\n if(this.router.url === '/'){\r\n this.router.navigate(['/messages']);\r\n\r\n }\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJyZXNldC5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LW1lc3NhZ2UtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n
\\r\\n
\\r\\n

Kendlebell

\\r\\n

The Perfect Answer

\\r\\n\\r\\n
\\r\\n
\\r\\n {{clientDetails.clientName}}
\\r\\n {{clientDetails.addressLine1}}
\\r\\n {{clientDetails.addressLine2}}
\\r\\n {{clientDetails.addressLine3}}
\\r\\n {{clientDetails.townCity}}
\\r\\n {{clientDetails.county}}
\\r\\n {{clientDetails.postCode}}
\\r\\n {{clientDetails.country}}
\\r\\n
\\r\\n
\\r\\n\\r\\n Account No: {{selectedInvoice.accountNo}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

VOID

\\r\\n Void by {{selectedInvoice.voidBy}} on {{selectedInvoice.voidDate | amDateFormat:'LL'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n INVOICE\\r\\n CREDIT NOTE\\r\\n

\\r\\n
\\r\\n
{{officeDetails.addressLine1}}\\r\\n
{{officeDetails.addressLine2}}\\r\\n
{{officeDetails.addressLine3}}\\r\\n
{{officeDetails.townCity}}\\r\\n
{{officeDetails.postCode}}\\r\\n
{{officeDetails.country}}\\r\\n
{{officeDetails.phoneNo}}\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n Invoice Number: {{selectedInvoice.invoiceNo}}\\r\\n \\r\\n
\\r\\n
{{selectedInvoice.reference}}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n Tax Date: {{selectedInvoice.taxDate | amDateFormat:'LL'}}\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n Terms of: Net 7 Days\\r\\n
\\r\\n V.A.T. Reg. No.: {{invoiceSettings.vatRegNumber}}\\r\\n
\\r\\n Period Start Date: {{selectedInvoice.startPeriod | amDateFormat:'LL'}}\\r\\n
\\r\\n Period End Date: {{selectedInvoice.endPeriod | amDateFormat:'LL'}}\\r\\n
\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
LineProduct CodeService & Entity NameUnit PriceQtyAmountVAT AmountVAT Rate
\\r\\n {{i + 1}}\\r\\n {{line.productCode}}{{line.productName}}\\r\\n
{{line.description}}
{{line.unitPrice | currency:'EUR'}}{{line.quantity}}{{line.amount | currency:'EUR'}}{{line.vatAmount | currency:'EUR'}}{{line.vatRate}}\\r\\n \\r\\n mode_edit\\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n Total Amount\\r\\n {{selectedInvoice.totalAmount | currency:'EUR'}}
\\r\\n Total V.A.T.\\r\\n {{selectedInvoice.totalVat | currency:'EUR'}}
Total Amount{{selectedInvoice.totalInvoiceAmount | currency:'EUR'}}
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n

Your payment will be collected by {{selectedInvoice.paymentTypeName}}

\\r\\n

{{invoiceSettings.invoiceMessage}}

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
{{selectedInvoice.footerText}}
\\r\\n\\r\\n\\r\\n

\\r\\n Invoice No. {{selectedInvoice.invoiceNo}}\\r\\n

\\r\\n\\r\\n\\r\\n

\\r\\n {{invoiceSettings.invoiceFooter}}\\r\\n

\\r\\n
\\r\\n
\\r\\n\";","import { Component, OnInit } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettings, InvoiceSetting } from '../../models/invoiceData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\n\r\n\r\n@Component({\r\n selector: 'app-print-invoice',\r\n templateUrl: './print-invoice.component.html',\r\n styleUrls: ['./print-invoice.component.css'],\r\n providers: [ClientsContactsService, OfficesUsersRolesService, UserSessionService, InvoicingService]\r\n})\r\nexport class PrintInvoiceComponent implements OnInit {\r\n invoiceId: number = 0;\r\n selectedInvoice: Invoice;\r\n lineItems: LineItems[] = [];\r\n invoiceSettings: InvoiceSettings;\r\n officeId: number = 0;\r\n officeIdSubject: Observable;\r\n clientId: number = 0;\r\n clientDetails: Client;\r\n officeDetails: Office;\r\n userDetails: User;\r\n sessionCheck: any;\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, private route: ActivatedRoute, public clientsContactsService: ClientsContactsService, public invoicingService: InvoicingService, public userSessionService: UserSessionService, public router: Router, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n this.sessionCheck = setTimeout(() => {\r\n \r\n window.print();\r\n\r\n }, 75 * 10 * 1);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.selectedInvoice = new Invoice();\r\n this.clientDetails = new Client();\r\n this.officeDetails = new Office();\r\n this.userDetails = new User();\r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n this.route.params.forEach(params => {\r\n this.invoiceId = params[\"invoiceId\"];\r\n //call your function, like getUserInfo()\r\n this.getInvoice(this.invoiceId);\r\n });\r\n\r\n this.invoiceSettings = new InvoiceSettings();\r\n this.getInvoiceSettings(this.officeId)\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getUser(userId: number) {\r\n\r\n this.officesUsersRolesService.getUsers(userId, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.userDetails = resp.userDetails.users[0];\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n getInvoice(invoiceId: number) {\r\n\r\n this.invoicingService.getInvoices(invoiceId, 0, 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.selectedInvoice = resp.invoices.invoices[0];\r\n this.lineItems = resp.invoices.invoices[0].lineItems;\r\n this.clientId = resp.invoices.invoices[0].clientId;\r\n this.getClient(this.clientId);\r\n this.getOffice(this.officeId);\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n getOffice(officeId: number) {\r\n\r\n this.officesUsersRolesService.getOffices(officeId, 0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.officeDetails = resp.officeDetails.offices[0];\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n getClient(clientId: number) {\r\n\r\n this.clientsContactsService.getClients(clientId, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.clientDetails = resp.clientDetails.clients[0];\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n getInvoiceSettings(officeId: number) {\r\n\r\n this.invoicingService.getInvoiceSettings(0, officeId, 0, 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.invoiceSettings = resp.invoiceSettings[0];\r\n // this.getUser(this.invoiceSettings.ownerId);\r\n }\r\n })\r\n\r\n }\r\n}\r\n","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Invoice: \\r\\n Credit Note: {{selectedInvoice.invoiceNo}} ({{selectedInvoice.status}})

\\r\\n\\r\\n
    \\r\\n
  1. \\r\\n Invoices\\r\\n
  2. \\r\\n
  3. Invoice
  4. \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Kendlebell

\\r\\n

The Perfect Answer

\\r\\n\\r\\n

\\r\\n {{clientDetails.clientName}}
\\r\\n {{clientDetails.addressLine1}}
\\r\\n {{clientDetails.addressLine2}}
\\r\\n {{clientDetails.addressLine3}}
\\r\\n {{clientDetails.townCity}}
\\r\\n {{clientDetails.county}}
\\r\\n {{clientDetails.postCode}}
\\r\\n {{clientDetails.country}}
\\r\\n

\\r\\n\\r\\n Account No: {{selectedInvoice.accountNo}}


\\r\\n
\\r\\n
\\r\\n
\\r\\n

VOID

\\r\\n Void by {{selectedInvoice.voidBy}} on {{selectedInvoice.voidDate | amDateFormat: 'DD/MM/YYYY'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n INVOICE\\r\\n CREDIT NOTE\\r\\n



\\r\\n \\r\\n {{officeDetails.addressLine1}}
\\r\\n {{officeDetails.addressLine2}}
\\r\\n {{officeDetails.addressLine3}}
\\r\\n {{officeDetails.townCity}}
\\r\\n {{officeDetails.postCode}}
\\r\\n {{officeDetails.country}}
\\r\\n {{officeDetails.phoneNo}}\\r\\n\\r\\n


\\r\\n\\r\\n \\r\\n Credit Note Number: {{selectedInvoice.invoiceNo}}

\\r\\n Invoice Number: {{selectedInvoice.invoiceNo}}

\\r\\n {{selectedInvoice.reference}}\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Tax Date: {{selectedInvoice.taxDate | amDateFormat: 'DD/MM/YYYY'}}

\\r\\n

\\r\\n Terms of: Net 7 Days
\\r\\n V.A.T. Reg. No.: {{invoiceSettings.vatRegNumber}}
\\r\\n Period Start Date: {{selectedInvoice.startPeriod | amDateFormat: 'DD/MM/YYYY'}}
\\r\\n Period End Date: {{selectedInvoice.endPeriod | amDateFormat: 'DD/MM/YYYY'}}
\\r\\n\\r\\n

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
LineProduct CodeService & Entity NameUnit PriceQtyAmountVAT AmountVAT Rate
\\r\\n {{i + 1}}\\r\\n {{line.productCode}}{{line.productName}}
{{line.description}}
{{line.unitPrice | currency:'EUR'}}{{line.quantity}}{{line.amount | currency:'EUR'}}{{line.vatAmount | currency:'EUR'}}{{line.vatRate}}mode_editdelete
\\r\\n \\r\\n
\\r\\n Total Amount\\r\\n {{selectedInvoice.totalAmount | currency:'EUR'}}
\\r\\n Total V.A.T.\\r\\n {{selectedInvoice.totalVat | currency:'EUR'}}
Total Amount{{selectedInvoice.totalInvoiceAmount | currency:'EUR'}}
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n

Your payment will be collected by {{selectedInvoice.paymentTypeName}}

\\r\\n

{{invoiceSettings.invoiceMessage}}

\\r\\n

\\r\\n\\r\\n\\r\\n
{{selectedInvoice.footerText}}
\\r\\n\\r\\n\\r\\n

Invoice No. {{selectedInvoice.invoiceNo}}

\\r\\n\\r\\n\\r\\n

{{invoiceSettings.invoiceFooter}}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\";","export default \"
\\r\\n\\r\\n \\r\\n

Add Line Item

\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Line Item\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ type.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ product.productName }} ({{ product.productCode }})\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taxCode.code }} ({{taxCode.rate}})\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","\r\nimport {throwError as observableThrowError, Observable } from 'rxjs';\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse} from '@angular/common/http';\r\n\r\n\r\nimport 'rxjs/Observable';\r\n\r\n\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n public token: string;\r\n constructor(){\r\n this.token = localStorage.getItem('Token');\r\n\r\n \r\n }\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n if (localStorage.getItem(\"Token\") === null) {\r\n const authReq = req.clone({\r\n \r\n });\r\n return next.handle(authReq);\r\n }else{\r\n this.token = localStorage.getItem('Token');\r\n const authReq = req.clone({\r\n headers: req.headers.set('Token', this.token)\r\n });\r\n return next.handle(authReq)\r\n .catch((err: any, caught) => {\r\n if (err instanceof HttpErrorResponse) {\r\n if (err.status === 403) {\r\n console.info('err.error =', err.error, ';');\r\n }\r\n return observableThrowError(err);\r\n }\r\n });;\r\n }\r\n \r\n //if (req.method === 'GET') {\r\n //console.log(\"intercept called \" + req.method );\r\n \r\n \r\n // }\r\n //console.log(\"intercept called \" + req.method );\r\n //return next.handle(authReq);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\n\r\nimport { LoginData, ResetData, ChangeData } from '../models/loginData';\r\n\r\nimport { PasswordData } from '../models/passwordData';\r\n\r\n@Injectable()\r\nexport class LoginService {\r\n public token: string;\r\n constructor(public http: HttpClient) { }\r\n\r\n\r\n login(loginData:any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/me/login\", loginData);\r\n }\r\n logout(): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/logout\");\r\n }\r\n forgottenPassword(useremailaddress: string): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/password/forgottenPassword/\" + useremailaddress);\r\n }\r\n changePasswordWithEncryptedUserId(encryptedUserId: any, passwordData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/user/changePasswordWithEncryptedUserId/\" + encryptedUserId, passwordData);\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n Journals

\\r\\n\\r\\n
    \\r\\n
  1. Journals
  2. \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n

No journals assigned to you

\\r\\n
\\r\\n\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DateClientForCallerContactMessage
{{message.dateTaken | amDateFormat: 'DD/MM/YYYY HH:mm'}}{{message.clientName}}{{message.messageFor}}{{message.callerName}}{{message.message}}\\r\\n Phone: {{message.phone}}
Taken by: {{message.user}}\\r\\n
Delivery Method: {{message.deliveryType}}
Status: {{message.status}}\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n

No journals available

\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
DateClientForCallerMessageDetailsJournal
{{message.dateTaken | amDateFormat: 'DD/MM/YYYY HH:mm'}}{{message.clientName}}{{message.messageFor}}{{message.callerName}}{{message.message}}\\r\\n Phone: {{message.phone}}
Taken by: {{message.user}}\\r\\n
Delivery Method: {{message.deliveryType}}
Status: {{message.status}}\\r\\n \\r\\n\\r\\n
{{message.journal}}\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbnZvaWNlLXNldHRpbmdzLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n\\r\\n \\r\\n

Change Payment Type

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ type.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Make this permanent\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"\\r\\n

Finalise Invoice

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\";","export default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{userSelected.userName}}

\\r\\n\\r\\n
    \\r\\n
  1. \\r\\n {{userSelected.officeName}}\\r\\n
  2. \\r\\n
  3. User
  4. \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n User Details\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Active\\r\\n
\\r\\n
\\r\\n EOD Summary Email\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Roles\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{role.name}}\\r\\n
\\r\\n \\r\\n
\\r\\n {{role.description}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Created: {{userSelected.createdDate | amDateFormat: 'YYYY-MM-DD HH:mm'}} by {{userSelected.createdBy}}\\r\\n 0\\\">| Last updated: {{userSelected.lastUpdatedDate | amDateFormat: 'YYYY-MM-DD HH:mm'}} by {{userSelected.lastUpdatedBy}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-complete-invoice-dialog',\r\n templateUrl: './complete-invoice-dialog.component.html',\r\n styleUrls: ['./complete-invoice-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class CompleteInvoiceDialogComponent implements OnInit {\r\n invoice:Invoice;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n\r\n this.invoice = this.data.invoice;\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n complete(){\r\n\r\n\r\n this.invoicingService.completeInvoice(this.invoice.invoiceId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoice Completed\");\r\n\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n\r\n })\r\n\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwYWdlLW5vdC1mb3VuZC5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtbW92ZW1lbnQtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export class MeData {\r\n errors: any | null;\r\n user: Me[];\r\n\r\n }\r\n export class Me{\r\n\r\n emailAddress: string;\r\n userId: number;\r\n userName: string;\r\n officeName: string;\r\n officeId: number;\r\n roles: Roles[];\r\n }\r\n\r\n export class Roles {\r\n name: string;\r\n roleId: number;\r\n\r\n }\r\n export class LoginDetails {\r\n email: string;\r\n password: string;\r\n\r\n }\r\n","export default \"
\\r\\n \\r\\n \\r\\n \\r\\n 50\\\" [length]=\\\"noOfSentItems\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n
\\r\\n

No sent invoices returned, please change the filter or email an invoice.

\\r\\n
\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
Sent dateEmail toMessageInvoice No
{{invoice.sentDate | amLocal | amDateFormat: 'YYYY-MM-DD HH:mm'}}\\r\\n
{{invoice.responseMessage}}\\r\\n
{{invoice.emailTo}}{{invoice.emailMessage}}{{invoice.invoiceNo}}
\\r\\n 50\\\" [length]=\\\"noOfSentItems\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtbGluZS1pdGVtLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem, EmailInvoiceData } from '../../models/invoiceData';\r\n\r\n\r\n@Component({\r\n selector: 'app-change-invoice-date-dialog',\r\n templateUrl: './change-invoice-date-dialog.component.html',\r\n styleUrls: ['./change-invoice-date-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class ChangeInvoiceDateDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n invoiceData: Invoice;\r\n\r\n constructor(private fb: FormBuilder, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n 'startPeriod': ['', Validators.required],\r\n 'endPeriod': ['', Validators.required]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.invoiceData = this.data.invoice;\r\n\r\n this.rForm.controls['startPeriod'].setValue(moment(this.invoiceData.startPeriod).toDate());\r\n this.rForm.controls['endPeriod'].setValue(moment(this.invoiceData.endPeriod).toDate());\r\n\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n changeDate(post){\r\nconsole.log(post)\r\nif (moment(post.startPeriod).isValid()) {\r\n this.invoiceData.startPeriod = moment.utc(post.startPeriod).format();\r\n}\r\nif (moment(post.endPeriod).isValid()) {\r\n this.invoiceData.endPeriod = moment.utc(post.endPeriod).format();\r\n}\r\n console.log(this.invoiceData);\r\n \r\n this.invoicingService.changeInvoiceDate(this.invoiceData.invoiceId, this.invoiceData).subscribe(resp => {\r\n\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoice dates updated\");\r\n\r\n this.dialogRef.close();\r\n\r\n }\r\n })\r\n\r\n }\r\n}\r\n","import {RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle} from \"@angular/router\";\r\n\r\nexport class CustomReuseStrategy implements RouteReuseStrategy {\r\n\r\n handlers: {[key: string]: DetachedRouteHandle} = {};\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n console.debug('CustomReuseStrategy:shouldDetach', route);\r\n return !!route.data && !!(route.data as any).shouldDetach; \r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n console.debug('CustomReuseStrategy:store', route, handle);\r\n this.handlers[route.routeConfig.path] = handle;\r\n }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n console.debug('CustomReuseStrategy:shouldAttach', route);\r\n return !!route.routeConfig && !!this.handlers[route.routeConfig.path];\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n console.debug('CustomReuseStrategy:retrieve', route);\r\n if (!route.routeConfig) return null;\r\n return this.handlers[route.routeConfig.path];\r\n }\r\n\r\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\r\n console.debug('CustomReuseStrategy:shouldReuseRoute', future, curr);\r\n return future.routeConfig === curr.routeConfig;\r\n }\r\n\r\n}","export class MessageSend {\r\n errors: any[] | null;\r\n messageId: number | null;\r\n\r\n}\r\nexport class NewMessage {\r\n dateTaken: any;\r\n contactId: number;\r\n clientId: number;\r\n message: string = '';\r\n messageFor: string;\r\n messageTypeId: number;\r\n callerName: string = '';\r\n phoneNo: string = '';\r\n email: string = '';\r\n reference: string = '';\r\n company: string = '';\r\n isEod: boolean;\r\n deliveryTypeId: number = 0;\r\n\r\n}\r\n\r\nexport class MessageData {\r\n errors: any[] | null;\r\n messageDetails: MessageDetails | null;\r\n\r\n}\r\nexport class MessageDetails {\r\n messages: Messages[] | null;\r\n totalCount: number;\r\n\r\n}\r\nexport class Messages {\r\n callerId: number;\r\n callerName: string;\r\n clientId: number;\r\n clientName: string;\r\n company: string;\r\n contactId: number;\r\n contactName: string;\r\n createdDate: any;\r\n dateTaken: any;\r\n deliveryDate: string;\r\n deliveryTypeId: number;\r\n deliveryTypeName: string;\r\n email: string;\r\n isActive: boolean;\r\n isEod: boolean;\r\n journalDate: string;\r\n journalUserId: number;\r\n message: string;\r\n messageFor: string;\r\n messageId: number;\r\n messageTypeId: number;\r\n messageTypeName: string;\r\n phoneNo: string;\r\n reference: string;\r\n statusId: number;\r\n statusName: string;\r\n totalCount: number;\r\n userId: number;\r\n userName: string;\r\n officeName: string;\r\n individualMessageStatus: IndividualMessageStatus[];\r\n responseMessage: string;\r\n}\r\n\r\nexport class IndividualMessageStatus {\r\n deliveryTypeName: string;\r\n statusId: number;\r\n statusName: string;\r\n}\r\n\r\nexport class MessageSearch {\r\n messageId: number = 0;\r\n\tuserId: number = 0;\r\n\tcontactId: number = 0;\r\n\tclientId: number = 0;\r\n\tcallerName: any = 0;\r\n\tphone: any = 0;\r\n\temail: any = 0;\r\n\treference: any = 0;\r\n\tcompany: any = 0;\r\n\tstatusId: number = 0;\r\n\tdeliveryTypeId: number = 0;\r\n\tmessageSearch: any = 0;\r\n\tfromCreatedDate: any = 0;\r\n\ttoCreatedDate: any = 0;\r\n\tisActive: number = 1;\r\n\tsortId: number = 1;\r\n\tsortDir: string = \"DESC\";\r\n\tpageNo: number = 0;\r\n\r\n\r\n}\r\nexport class MessageSearchCSV {\r\n messageId: number = 0;\r\n\tuserId: number = 0;\r\n\tcontactId: number = 0;\r\n\tclientId: number = 0;\r\n\tcallerName: any = 0;\r\n\tphone: any = 0;\r\n\temail: any = 0;\r\n\treference: any = 0;\r\n\tcompany: any = 0;\r\n\tstatusId: number = 0;\r\n\tdeliveryTypeId: number = 0;\r\n\tmessageSearch: any = 0;\r\n\tfromCreatedDate: any = 0;\r\n\ttoCreatedDate: any = 0;\r\n\tisActive: number = 1;\r\n\tsortId: number = 1;\r\n\tsortDir: string = \"DESC\";\r\n}\r\n\r\nexport class MessageEmailReport {\r\n\tuserId: number = 0;\r\n\tcontactId: number = 0;\r\n\tclientId: number = 0;\r\n\tcallerName: any = 0;\r\n\tphone: any = 0;\r\n\temail: any = 0;\r\n\treference: any = 0;\r\n\tcompany: any = 0;\r\n\tstatusId: number = 0;\r\n deliveryTypeId: number = 0;\r\n messageSearch: any = 0;\r\n\tmessage: string = '';\r\n\tfromCreatedDate: any = 0;\r\n\ttoCreatedDate: any = 0;\r\n\tisActive: number = 1;\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { DataSource } from '@angular/cdk/collections';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { UserData, UserDetails, Users } from '../../models/userData';\r\n\r\n@Component({\r\n selector: 'app-users',\r\n templateUrl: './users.component.html',\r\n styleUrls: ['./users.component.css']\r\n})\r\nexport class UsersComponent implements OnInit {\r\n noOfUsers: any;\r\n officeId: number = 0;\r\n listOfUsers: Users[];\r\n\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, private router: Router, private route: ActivatedRoute, public snackBar: MatSnackBar) { }\r\n\r\n isActiveFilter: number = 1;\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n\r\n\r\n\r\n triggerUpdate() {\r\n\r\n this.getUsers(this.officeId, this.isActiveFilter, 1);\r\n }\r\n\r\n ngOnInit() {\r\n \r\n console.log(this.officeId);\r\n //this.getUsers(this.officeId, this.isActiveFilter, 1);\r\n }\r\n //getUsers\r\n ////userId: number, userName:string, officeId:number, isActive:number, pageNo:number\r\n\r\n public getUsers(officeId: number, isActiveFilter: number, pageNo: number) {\r\n this.officesUsersRolesService.getUsers(0, '0', officeId, isActiveFilter, 1, 'ASC', pageNo).subscribe(resp => {\r\n this.noOfUsers = resp.userDetails.totalCount;\r\n if (resp.errors.length == 0) {\r\n this.listOfUsers = resp.userDetails.users;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n console.log(resp.errors[0].error);\r\n\r\n }\r\n });\r\n\r\n }\r\n setPage(event) {\r\n console.log(event);\r\n this.getUsers(this.officeId, this.isActiveFilter, event.pageIndex + 1);\r\n }\r\n reset() {\r\n this.isActiveFilter = 0;\r\n this.getUsers(this.officeId, this.isActiveFilter, 1);\r\n }\r\n resetUserPassword(user) {\r\n\r\n this.officesUsersRolesService.passwordReset(user.emailAddress).subscribe(resp => {\r\n if (resp.errors.length == 0) {\r\n this.openSnackBarError(\"Password reset request email sent to \" + user.userName);\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n console.log(resp.errors[0].error);\r\n\r\n }\r\n\r\n\r\n })\r\n\r\n }\r\n openSnackBarError(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n\r\n });\r\n }\r\n\r\n}\r\n","export default \"\\r\\n

Void Invoice

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\";","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\nimport { MessageSend, NewMessage, MessageData, MessageDetails, Messages } from '../models/messageData';\r\nimport { MessageTypeData, MessageType } from '../models/messageTypeData';\r\nimport { CallerData, Callers } from '../models/callerData';\r\n\r\n\r\n@Injectable()\r\nexport class MessagesService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n sendMessage(messageData:any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/message/send\", messageData);\r\n }\r\n getMessages(messageData:any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/message\", messageData);\r\n }\r\n getMessagesTypes(messageTypeId: number, name: string, isActive: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/messageType/\" + messageTypeId + \"/\" + name + \"/\" + isActive);\r\n }\r\n\r\n getCaller(callerName: string, clientId: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/caller/\" + callerName + \"/\" + clientId);\r\n }\r\n\r\n getMessagesCSV(messageData: any){\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/csvForMessage\", messageData, { responseType: 'blob'});\r\n }\r\n resendMessage(messageId: number, messageData:any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/message/resend/\" + messageId, messageData);\r\n }\r\n updateMessage(messageId: number, messageData:any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/updateMessage/\" + messageId, messageData);\r\n }\r\n\r\n endOfDeliveryForClient(messageData:any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/endOfDeliveryForClient\", messageData);\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n \\r\\n \\r\\n

View Line Item

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Line Item no\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ type.name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ product.productName }} ({{ product.productCode }})\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ taxCode.code }} ({{taxCode.rate}})\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, InvoiceSettings, InvoiceSetting } from '../../models/invoiceData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\n\r\nimport { ClientMessagesComponent } from '../../components/client-messages/client-messages.component';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\n\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { ClientData, ClientDetails, Clients, Client, ClientAutocomplete } from '../../models/clientData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { BillingData, Billings } from '../../models/billingData';\r\n\r\n@Component({\r\n selector: 'app-add-client-dialog',\r\n templateUrl: './add-client-dialog.component.html',\r\n styleUrls: ['./add-client-dialog.component.css'],\r\n providers: [ClientsContactsService, InvoicingService]\r\n})\r\nexport class AddClientDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n selectedOffices: string;\r\n newClient: Client;\r\n listOfSourceTypes: SourceTypes[];\r\n listOfOffices: OfficeData;\r\n listOfOffices2: Offices[];\r\n filteredContacts: ContactAutocomplete[] = [];\r\n officeSelected: Office;\r\n paymentTypes: PaymentTypes[];\r\n taxCodes: TaxCodes[];\r\n listOfTariffs: Products[] = [];\r\n filteredClients: ClientAutocomplete[] = [];\r\n officeId: number;\r\n listOfBillingTypes: Billings[];\r\n listOfQuarterMonths: any[];\r\n listOfMonths: any[];\r\n\r\n get offices(): FormArray {\r\n return this.rForm.get('offices');\r\n }\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, private router: Router, private route: ActivatedRoute, public invoicingService: InvoicingService, public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar) {\r\n this.rForm = fb.group({\r\n\r\n 'clientName': [null, Validators.required],\r\n 'clientAcronym': [{ value: '', disabled: true }, Validators.required],\r\n 'billingDate': [null, Validators.required],\r\n 'billingFrequencyId': [null],\r\n 'clientCode': ['', [Validators.required, Validators.minLength(4), Validators.maxLength(4)]],\r\n 'addressLine1': [null, Validators.required],\r\n 'addressLine2': [null],\r\n 'addressLine3': [null],\r\n 'townCity': [false, Validators.required],\r\n 'postCode': [false],\r\n 'country': [false],\r\n 'county': [false],\r\n 'isTrial': [false],\r\n 'trialClosedDate': [null],\r\n 'serviceStartDate': [null, Validators.required],\r\n 'isActive': [true],\r\n 'clientId': [0, Validators.required],\r\n 'closeDate': [null],\r\n 'sourceTypeId': [null],\r\n 'internalDDI': [false],\r\n 'phoneNo': [false],\r\n 'faxNo': [false],\r\n 'emergencyNo': [null],\r\n 'privateUrl': [null],\r\n 'webUrl': [null],\r\n 'formUrl': [null],\r\n 'answerScript': [null],\r\n 'instruction': [null],\r\n 'hangUpScript': [null],\r\n 'notes': [''],\r\n 'mainContactId': [null],\r\n 'clientAutocomplete': new FormControl(),\r\n 'paymentTypeId': [null],\r\n 'taxId': [null],\r\n 'isOutOfHours': [false],\r\n 'masterAccountId': [null],\r\n 'tariffId': [null],\r\n 'isVatExempt': [false],\r\n 'isInvoiceScheduled': [true],\r\n 'invoiceToEmails': [null],\r\n 'financeContact': [null],\r\n offices: this.fb.array([]),\r\n 'monthInQuarter': [{ value: 1}],\r\n 'monthNumber': [{ value: 1}],\r\n });\r\n\r\n this.rForm.controls['clientAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientAutocomplete'].value);\r\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n addOffice(selected, id, disabled): void {\r\n\r\n this.offices.push(this.buildOffices(selected, id, disabled));\r\n }\r\n\r\n buildOffices(selected, id, disabled): FormGroup {\r\n return this.fb.group({\r\n officeId: id,\r\n locked: disabled,\r\n isSelected: new FormControl({ value: selected, disabled: disabled })\r\n })\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n setClient(client) {\r\n\r\n const ctrl = this.rForm.get('billingDate');\r\n if (client.clientId > 0) {\r\n this.newClient.masterAccountId = client.clientId;\r\n\r\n this.clientsContactsService.getClients(client.clientId, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.rForm.get(\"billingDate\").setValue(moment(resp.clientDetails.clients[0].billingDate).toDate());\r\n }\r\n\r\n })\r\n } else {\r\n //ctrl.enable();\r\n this.rForm.get(\"billingDate\").setValue(ctrl.value);\r\n }\r\n }\r\n ngOnInit() {\r\n\r\n this.listOfQuarterMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3}\r\n ]\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6},\r\n {id: 7, value: 7}, {id: 8, value: 8}, {id: 9, value: 9},\r\n {id: 10, value: 10}, {id: 11, value: 11}, {id: 12, value: 12}\r\n \r\n ]\r\n \r\n this.officeId = this.data.officeSelected.officeId;\r\n this.newClient = new Client();\r\n\r\n this.listOfSourceTypes = this.data.sourceData;\r\n\r\n this.listOfOffices = this.data.officeData;\r\n\r\n this.listOfOffices2 = this.data.officeData.officeDetails.offices;\r\n\r\n this.officeSelected = this.data.officeSelected;\r\n\r\n this.paymentTypes = this.data.paymentTypes;\r\n this.taxCodes = this.data.taxCode;\r\n this.getBillingFrequency();\r\n this.getTariffs(this.officeSelected.officeId);\r\n\r\n this.listOfOffices.officeDetails.offices.forEach((office) => {\r\n if (office.officeId === this.officeSelected.officeId) {\r\n this.addOffice(true, office.officeId, true);\r\n } else {\r\n this.addOffice(false, office.officeId, false);\r\n }\r\n\r\n });\r\n }\r\n\r\n setDates(billingId){\r\n console.log(billingId);\r\n if(billingId === 3){\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6}\r\n \r\n ]\r\n }else{\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6},\r\n {id: 7, value: 7}, {id: 8, value: 8}, {id: 9, value: 9},\r\n {id: 10, value: 10}, {id: 11, value: 11}, {id: 12, value: 12}\r\n \r\n ]\r\n }\r\n }\r\n\r\n getBillingFrequency() {\r\n this.clientsContactsService.getBillingFrequency().subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfBillingTypes = resp.deliveryTypes;\r\n }\r\n });\r\n }\r\n private getTariffs(officeId: number) {\r\n\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, 1, 0, 0, 1, 0, 1, 'ASC', 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfTariffs = resp.invoiceProducts.products;\r\n }\r\n })\r\n }\r\n\r\n billingFilter = (d: Date): boolean => {\r\n console.log(d);\r\n d = moment(d).toDate();\r\n const day = d.getDate();\r\n // Prevent Saturday and Sunday from being selected.\r\n return day !== 29 && day !== 30 && day !== 31;\r\n }\r\n\r\n updateClientAcronym($event) {\r\n\r\n console.log($event);\r\n\r\n }\r\n\r\n updateClientAcronymDate(event) {\r\n\r\n let tempClientRef = this.newClient.clientAcronym;\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n addClient(post) {\r\n this.selectedOffices = '';\r\n post.offices.forEach((office, i) => {\r\n if (!office.hasOwnProperty(\"isSelected\")) {\r\n this.selectedOffices += office.officeId + \",\";\r\n } else {\r\n if (office.isSelected) {\r\n this.selectedOffices += office.officeId + \",\";\r\n }\r\n }\r\n });\r\n this.selectedOffices = this.selectedOffices.slice(0, -1);\r\n\r\n if (moment(post.closeDate).isValid()) {\r\n this.newClient.closeDate = post.closeDate;\r\n }\r\n if (moment(post.trialClosedDate).isValid()) {\r\n this.newClient.trialClosedDate = post.trialClosedDate;\r\n }\r\n if (moment(post.serviceStartDate).isValid()) {\r\n this.newClient.serviceStartDate = post.serviceStartDate;\r\n }\r\n if (moment(post.billingDate).isValid()) {\r\n this.newClient.billingDate = post.billingDate;\r\n }\r\n\r\n\r\n this.newClient.clientCode = this.newClient.clientCode.toUpperCase();\r\n\r\n this.newClient.clientAcronym = this.newClient.clientCode + \"-\" + this.officeSelected.referenceNo + \"-\" + moment(this.newClient.billingDate).format(\"DDMM\");\r\n\r\n this.clientsContactsService.addClient(this.selectedOffices, this.newClient).subscribe(resp => {\r\n\r\n let clientDetailsTemp= resp;\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.router.navigate(['/clients/' + clientDetailsTemp.clientId + '/tab/0']);\r\n this.openSnackBar(\"Client Added\");\r\n this.dialogRef.close();\r\n\r\n }\r\n });\r\n }\r\n}\r\n","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ type.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n 0\\\" [length]=\\\"noOfProducts\\\" [pageSize]=\\\"50\\\" [pageIndex]=\\\"pageNo\\\" (page)=\\\"setPage($event); pageEvent = $event\\\">\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Product CodeNameDescriptionIncluded MessagesMessage CostUnit CostTypeLast UpdatedVisible in InvoiceGlobalActive
\\r\\n {{product.productCode}}\\r\\n {{product.productName}}{{product.description}}{{product.includedMessages}}{{product.messageCost}}{{product.unitCost}}{{product.productTypeName}}\\r\\n Created: {{product.createdDate | amDateFormat:'LL'}} by {{product.createdBy}}\\r\\n 0\\\">\\r\\n
Last updated: {{product.lastUpdatedDate | amDateFormat:'LL'}} by {{product.lastUpdatedBy}}
\\r\\n
\\r\\n
\\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n
\\r\\n 0\\\" [length]=\\\"noOfProducts\\\" [pageSize]=\\\"50\\\" [pageIndex]=\\\"pageNo\\\" (page)=\\\"setPage($event); pageEvent = $event\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjb21wbGV0ZS1pbnZvaWNlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { TotalMessagesByUserAndDateData, UsersReporting } from '../../models/totalMessagesByUserAndDateData';\r\nimport { TotalMessagesByClientAndDateData, ClientsReporting } from '../../models/totalMessagesByClientAndDateData';\r\nimport { ViewMovementDialogComponent } from '../../components/view-movement-dialog/view-movement-dialog.component';\r\n\r\nimport { MovementsService } from '../../services/movements.service';\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { ReportingService } from '../../services/reporting.service';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { StatusTypesData, StatusTypes, StatusType } from '../../models/invoiceStatusData';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettings, InvoiceSetting } from '../../models/invoiceData';\r\n\r\nimport { MovementData, MovementDetails, Movements, Movement } from '../../models/movementData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { OfficeDetails, Office } from '../../models/officeData';\r\nimport { MeData, Me } from '../../models/meData';\r\n\r\n@Component({\r\n selector: 'app-reporting',\r\n templateUrl: './reporting.component.html',\r\n styleUrls: ['./reporting.component.css'],\r\n providers: [ClientsContactsService, ReportingService, MovementsService, OfficesUsersRolesService, UserSessionService, InvoicingService]\r\n})\r\nexport class ReportingComponent implements OnInit {\r\n rForm: FormGroup;\r\n rForm2: FormGroup;\r\n rForm3: FormGroup;\r\n rForm4: FormGroup;\r\n filteredClients: ClientAutocomplete[] = [];\r\n filteredClients2: ClientAutocomplete[] = [];\r\n filteredClients3: ClientAutocomplete[] = [];\r\n filteredClients4: ClientAutocomplete[] = [];\r\n filteredOptionsClients: Observable;\r\n clientFromDate: any;\r\n clientFromDateFinal: any;\r\n clientToDate: any;\r\n clientToDateFinal: any;\r\n userReportingStats: UsersReporting[] = [];\r\n clientsReportingStats: ClientsReporting[] = [];\r\n filterByDate: boolean = true;\r\n filterByDate2: boolean = true;\r\n filterByDate3: boolean = false;\r\n filterByDate4: boolean = false;\r\n selectedClient: number = 0;\r\n selectedClient2: number = 0;\r\n selectedClient3: number = 0;\r\n selectedClient4: number = 0;\r\n userFromDateFinal: any;\r\n userToDateFinal: any;\r\n userFromDate: any;\r\n userToDate: any;\r\n loadingCSV: boolean = false;\r\n loadingCSV2: boolean = false;\r\n listOfMovements: Movements[];\r\n noOfMovements: number;\r\n loadingUserStats: boolean = true;\r\n loadingClientStats: boolean = true;\r\n loadingMovements: boolean = true;\r\n isActiveFilter: number = 1;\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n movementFromDate: any;\r\n movementToDate: any;\r\n movementFromDateFinal: any;\r\n movementToDateFinal: any;\r\n invoiceFromDate: any;\r\n invoiceToDate: any;\r\n invoiceFromDateFinal: any;\r\n invoiceToDateFinal: any;\r\n selectedUser: number = 0;\r\n filteredUsers: Users[];\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n messageFromDate: any;\r\n messageToDate: any;\r\n listOfOffices: Office[] = [];\r\n listOfInvoiceStatus: StatusType[] = [];\r\n statusTypeId: number = 0;\r\n lineItems: boolean = false;\r\n selectedUser1: MeData;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n navRoleClientAdmin: boolean = false;\r\n me: any;\r\n userOffice: number = 0;\r\n pageNo: number = 0;\r\n days = [];\r\n dayFrom: number = 1;\r\n dayTo: number = 28;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, public invoicingService: InvoicingService, public dialog: MatDialog, public userSessionService: UserSessionService, public officesUsersRolesService: OfficesUsersRolesService, public snackBar: MatSnackBar, private fb: FormBuilder, public movementsService: MovementsService, public clientsContactsService: ClientsContactsService, public reportingService: ReportingService) {\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n this.rForm = fb.group({\r\n 'clientIda': new FormControl(),\r\n 'userId': new FormControl(),\r\n });\r\n this.rForm2 = fb.group({\r\n 'clientId': new FormControl(),\r\n\r\n });\r\n\r\n this.rForm3 = fb.group({\r\n 'clientId': new FormControl(),\r\n 'isActiveFilter': new FormControl(),\r\n });\r\n\r\n this.rForm4 = fb.group({\r\n 'officeId': new FormControl(),\r\n 'clientId': new FormControl(),\r\n 'lineItems': new FormControl(),\r\n 'statusTypeId': new FormControl()\r\n });\r\n\r\n this.rForm.controls['clientIda'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientIda'].value);\r\n if (this.rForm.controls['clientIda'].value === '' || typeof this.rForm.controls['clientIda'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientIda'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n\r\n });\r\n\r\n this.rForm.controls['userId'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['userId'].value);\r\n if (this.rForm.controls['userId'].value === '' || typeof this.rForm.controls['userId'].value != 'string') {\r\n return this.filteredUsers = null;\r\n } else {\r\n this.officesUsersRolesService.getUsers(0, this.rForm.controls['userId'].value, this.officeId, 0, 1, 'ASC', 1)\r\n .subscribe(res => {\r\n return this.filteredUsers = res.userDetails.users\r\n })\r\n }\r\n\r\n });\r\n\r\n\r\n this.rForm2.controls['clientId'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm2.controls['clientId'].value);\r\n if (this.rForm2.controls['clientId'].value === '' || typeof this.rForm2.controls['clientId'].value != 'string') {\r\n return this.filteredClients2 = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm2.controls['clientId'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients2 = res.clients\r\n })\r\n }\r\n\r\n });\r\n\r\n this.rForm3.controls['clientId'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm3.controls['clientId'].value);\r\n if (this.rForm3.controls['clientId'].value === '' || typeof this.rForm3.controls['clientId'].value != 'string') {\r\n return this.filteredClients3 = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm3.controls['clientId'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients3 = res.clients\r\n })\r\n }\r\n\r\n });\r\n\r\n this.rForm4.controls['clientId'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm4.controls['clientId'].value);\r\n if (this.rForm4.controls['clientId'].value === '' || typeof this.rForm4.controls['clientId'].value != 'string') {\r\n return this.filteredClients4 = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm4.controls['clientId'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients4 = res.clients\r\n })\r\n }\r\n\r\n });\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n displayFnUser(user: User): any {\r\n return user ? user.userName : user;\r\n }\r\n\r\n private getMe() {\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n this.selectedUser1 = resp;\r\n this.userOffice = resp.user[0].officeId;\r\n this.getOffices();\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleClientAdmin = true;\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(4)) {\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n\r\n this.navRoleHeadOffice = true;\r\n }\r\n\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n this.clientFromDate = moment().subtract(7, 'days').toDate();\r\n this.clientToDate = moment().toDate();\r\n\r\n this.userFromDate = moment().subtract(7, 'days').toDate();\r\n this.userToDate = moment().toDate();\r\n\r\n this.movementFromDate = moment().subtract(7, 'days').toDate();\r\n this.movementToDate = moment().toDate();\r\n\r\n this.messageFromDate = moment().subtract(7, 'days').toDate();\r\n this.messageToDate = moment().toDate();\r\n\r\n this.invoiceFromDate = moment().subtract(7, 'days').toDate();\r\n this.invoiceToDate = moment().toDate();\r\n\r\n this.getUserStats();\r\n this.getClientStats();\r\n this.getMovements(this.selectedClient3, this.isActiveFilter, 1);\r\n\r\n this.getOffices();\r\n this.getInvoiceStatus();\r\n\r\n this.getMe();\r\n\r\n let i: number = 0;\r\n\r\n for (i = 1; i < 29; i++) {\r\n if (i < 10) {\r\n this.days.push({ id: i, viewValue: '0' + i });\r\n } else {\r\n this.days.push({ id: i, viewValue: String(i) });\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n setRange(val) {\r\n\r\n\r\n\r\n }\r\n\r\n setPage(event) {\r\n this.pageNo = event.pageIndex;\r\n this.getMovements(this.selectedClient3, this.isActiveFilter, this.pageNo);\r\n }\r\n\r\n\r\n printMovement(selectedClient: number, isActiveFilter: number) {\r\n\r\n if (this.filterByDate3) {\r\n this.movementFromDateFinal = moment(this.movementFromDate).format('YYYY-MM-DD');\r\n this.movementToDateFinal = moment(this.movementToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.movementFromDateFinal = '0';\r\n this.movementToDateFinal = '0';\r\n }\r\n //client, dates, active\r\n //this.router.navigate(['/print-movements'], { queryParams: { active: 2, from: 3 }});\r\n window.open(\"/print-movements?active=\" + isActiveFilter + \"&from=\" + this.movementFromDateFinal + \"&to=\" + this.movementToDateFinal + \"&client=\" + selectedClient, \"_blank\");\r\n }\r\n\r\n downloadFile(data: any) {\r\n\r\n let parsedResponse = data;\r\n let blob = new Blob([parsedResponse], { type: 'text/csv' });\r\n let url = window.URL.createObjectURL(blob);\r\n\r\n if (navigator.msSaveOrOpenBlob) {\r\n navigator.msSaveBlob(blob, 'data.csv');\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'data.csv';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n window.URL.revokeObjectURL(url);\r\n this.loadingCSV = false;\r\n this.loadingCSV2 = false;\r\n }\r\n resetUserStats() {\r\n this.filterByDate = true;\r\n this.clientFromDate = moment().toDate();\r\n this.clientToDate = moment().toDate();\r\n this.selectedClient = 0;\r\n this.selectedUser = 0;\r\n this.getUserStats();\r\n }\r\n\r\n resetClientsStats() {\r\n this.userFromDate = moment().toDate();\r\n this.userToDate = moment().toDate();\r\n this.getClientStats();\r\n }\r\n\r\n setClient(client) {\r\n\r\n if (client.clientId > 0) {\r\n this.selectedClient = client.clientId;\r\n } else {\r\n this.selectedClient = 0\r\n }\r\n\r\n }\r\n setUser(user) {\r\n\r\n if (user.userId > 0) {\r\n this.selectedUser = user.userId;\r\n } else {\r\n this.selectedUser = 0\r\n }\r\n }\r\n\r\n getUserStats() {\r\n this.loadingUserStats = true;\r\n if (this.filterByDate) {\r\n this.clientFromDateFinal = moment(this.clientFromDate).format('YYYY-MM-DD');\r\n this.clientToDateFinal = moment(this.clientToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.clientFromDateFinal = '0';\r\n this.clientToDateFinal = '0';\r\n }\r\n\r\n this.reportingService.getTotalMessagesByUserAndDate(this.selectedUser, this.selectedClient, this.clientFromDateFinal, this.clientToDateFinal).subscribe(resp => {\r\n\r\n this.userReportingStats = resp.users;\r\n this.loadingUserStats = false;\r\n })\r\n\r\n }\r\n getUserStatsCSV() {\r\n this.loadingCSV = true;\r\n if (this.filterByDate) {\r\n this.clientFromDateFinal = moment(this.clientFromDate).format('YYYY-MM-DD');\r\n this.clientToDateFinal = moment(this.clientToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.clientFromDateFinal = '0';\r\n this.clientToDateFinal = '0';\r\n }\r\n\r\n this.reportingService.getCSVTotalMessagesByUserAndDate(this.selectedUser, this.selectedClient, this.clientFromDateFinal, this.clientToDateFinal).subscribe(resp => {\r\n this.downloadFile(resp);\r\n //this.userReportingStats = resp.users;\r\n\r\n })\r\n\r\n }\r\n setClient2(client) {\r\n\r\n if (client.clientId > 0) {\r\n this.selectedClient2 = client.clientId;\r\n } else {\r\n this.selectedClient2 = 0\r\n }\r\n }\r\n\r\n setClient3(client) {\r\n\r\n if (client.clientId > 0) {\r\n this.selectedClient3 = client.clientId;\r\n } else {\r\n this.selectedClient3 = 0\r\n }\r\n }\r\n getClientStats() {\r\n this.loadingClientStats = true;\r\n if (this.filterByDate2) {\r\n this.userFromDateFinal = moment(this.userFromDate).format('YYYY-MM-DD');\r\n this.userToDateFinal = moment(this.userToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.userFromDateFinal = '0';\r\n this.userToDateFinal = '0';\r\n }\r\n\r\n this.reportingService.getTotalMessagesByClientAndDate(this.selectedClient2, this.userFromDateFinal, this.userToDateFinal, 0).subscribe(resp => {\r\n\r\n this.clientsReportingStats = resp.clients;\r\n this.loadingClientStats = false;\r\n })\r\n\r\n }\r\n getClientStatsCSV() {\r\n this.loadingCSV2 = true;\r\n if (this.filterByDate2) {\r\n this.userFromDateFinal = moment(this.userFromDate).format('YYYY-MM-DD');\r\n this.userToDateFinal = moment(this.userToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.userFromDateFinal = '0';\r\n this.userToDateFinal = '0';\r\n }\r\n\r\n this.reportingService.getCSVTotalMessagesByClientAndDate(this.selectedClient2, this.userFromDateFinal, this.userToDateFinal).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n })\r\n\r\n }\r\n\r\n setClient4(client) {\r\n\r\n if (client.clientId > 0) {\r\n this.selectedClient4 = client.clientId;\r\n } else {\r\n this.selectedClient4 = 0\r\n }\r\n\r\n }\r\n\r\n getMovements(selectedClient: number, isActiveFilter: number, pageNo: number) {\r\n this.loadingMovements = true;\r\n if (this.filterByDate3) {\r\n this.movementFromDateFinal = moment(this.movementFromDate).format('YYYY-MM-DD');\r\n this.movementToDateFinal = moment(this.movementToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.movementFromDateFinal = '0';\r\n this.movementToDateFinal = '0';\r\n }\r\n\r\n this.movementsService.getMovements(0, selectedClient, isActiveFilter, this.movementFromDateFinal, this.movementToDateFinal, 1, 'ASC', pageNo).subscribe(resp => {\r\n this.noOfMovements = resp.movementDetails.totalCount;\r\n this.listOfMovements = resp.movementDetails.movements;\r\n this.loadingMovements = false;\r\n });\r\n }\r\n\r\n getMovementCSV(selectedClient: number, isActiveFilter: number) {\r\n\r\n this.movementsService.csvMovements(0, selectedClient, isActiveFilter, this.movementFromDateFinal, this.movementToDateFinal, 1, 'ASC').subscribe(resp => {\r\n //this.noOfMovements = resp.movementDetails.totalCount;\r\n //this.listOfMovements = resp.movementDetails.movements;\r\n this.downloadFile(resp);\r\n this.loadingMovements = false;\r\n });\r\n\r\n\r\n }\r\n\r\n resetMovements() {\r\n\r\n this.movementFromDateFinal = '0';\r\n this.movementToDateFinal = '0';\r\n this.isActiveFilter = 0;\r\n this.selectedClient3 = 0;\r\n this.pageNo = 1;\r\n this.getMovements(this.selectedClient3, this.isActiveFilter, 1);\r\n\r\n\r\n }\r\n\r\n\r\n getMessageCount(messageFromDate: string, messageToDate: string) {\r\n\r\n this.reportingService.getCSVForMessagesCount(moment(messageFromDate).format('YYYY-MM-DD'), moment(messageToDate).format('YYYY-MM-DD')).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n })\r\n\r\n }\r\n\r\n resetMessageCount() {\r\n\r\n }\r\n\r\n //get offices\r\n getOffices() {\r\n\r\n this.officesUsersRolesService.getOffices(0, 0, 1, 1).subscribe(resp => {\r\n this.listOfOffices = resp.officeDetails.offices;\r\n })\r\n\r\n }\r\n\r\n getInvoiceStatus() {\r\n\r\n this.invoicingService.getInvoiceStatusType(0, 0, 1).subscribe(resp => {\r\n\r\n this.listOfInvoiceStatus = resp.statusTypes;\r\n this.listOfInvoiceStatus.unshift({ statusTypeId: 0, name: \"Any\", isActive: true });\r\n })\r\n }\r\n\r\n getInvoicesReport(selectedClient4, isActiveFilter) {\r\n\r\n if (this.filterByDate4) {\r\n this.invoiceFromDateFinal = moment(this.invoiceFromDate).format('YYYY-MM-DD');\r\n this.invoiceToDateFinal = moment(this.invoiceToDate).format('YYYY-MM-DD');\r\n } else {\r\n this.invoiceFromDateFinal = '0';\r\n this.invoiceToDateFinal = '0';\r\n }\r\n\r\n if (this.lineItems) {\r\n this.reportingService.getCSVForInvoiceWithLineItems(this.officeId, selectedClient4, this.statusTypeId, this.invoiceFromDateFinal, this.invoiceToDateFinal).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n })\r\n\r\n } else {\r\n this.reportingService.getCSVForInvoice(this.officeId, selectedClient4, this.statusTypeId, this.invoiceFromDateFinal, this.invoiceToDateFinal).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n })\r\n }\r\n }\r\n\r\n viewMovementDialog(movement): void {\r\n\r\n let dialogRef = this.dialog.open(ViewMovementDialogComponent, {\r\n width: '1000px',\r\n data: { movementData: movement }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n\r\n });\r\n\r\n\r\n }\r\n resetInvoices() {\r\n\r\n\r\n }\r\n\r\n getClients() {\r\n\r\n this.reportingService.getCSVForClients(this.dayFrom, this.dayTo).subscribe(resp => {\r\n this.downloadFile(resp);\r\n })\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJkZWxldGUtbGluZS1pdGVtLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \" \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameReferenceBilling DateTrialPayment TypeOfficesMaster Account
{{client.clientName}}{{client.clientAcronym}}{{client.billingDate}}\\r\\n done\\r\\n clear\\r\\n {{client.paymentTypeName}}\\r\\n \\r\\n \\r\\n {{office.officeName}}\\r\\n \\r\\n \\r\\n \\r\\n done\\r\\n clear\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\";","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\nimport { ProductTypesData, ProductTypes, ProductType } from '../models/productTypesData';\r\nimport { StatusTypesData, StatusType, StatusTypes } from '../models/invoiceStatusData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product, InvoiceRecurringProductsData } from '../models/invoicingProductsData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, VoidInvoice, AddProductPOST, AutocompleteInvoice, EmailInvoiceData, PostEmailInvoice, SentInvoiceData } from '../models/invoiceData';\r\n\r\n\r\n@Injectable()\r\nexport class InvoicingService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getInvoiceStatusType(statusTypeId:number, name: number, isActive:number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceStatusType/\" + statusTypeId + '/' + name + '/' + isActive);\r\n }\r\n getInvoiceProduct(productId: number, productCode: any, productName: any, productTypeId: number, officeId: number, taxId: number, isActive: number, isDisplayInvoice: number, sortId: number, sortDir: string, pageNo: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceProduct/\" + productId + '/' + productCode + '/' + productName + '/' + productTypeId + '/' + officeId + '/' + taxId + '/' + isActive + '/' + isDisplayInvoice + '/' + sortId + '/' + sortDir + '/' + pageNo);\r\n }\r\n assignInvoiceRecurringProduct(productId: number, clientId: any, qty: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceRecurringProduct/add/\" + productId + '/' + clientId + '/' + qty);\r\n }\r\n getInvoiceRecurringProduct(productId: number, clientId: any): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceRecurringProduct/\" + productId + '/' + clientId);\r\n }\r\n getInvoices(invoiceId: number, clientId: number, officeId: number, invoiceTypeId: number, statusId: number, isActive: number, sortId: number, sortDir: string, pageNo: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoice/\" + invoiceId + '/' + clientId + '/' + officeId + '/' + invoiceTypeId + '/' + statusId + '/' + isActive + '/' + sortId + '/' + sortDir + '/' + pageNo);\r\n }\r\n updateLineItem(lineItemId: number, lineItemData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoiceLineItem/update/\" + lineItemId, lineItemData);\r\n }\r\n getInvoiceSettings(invoiceSettingId: number, officeId: number, name: any, isActive: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceSettings/\" + invoiceSettingId + '/' + officeId + '/' + name + '/' + isActive);\r\n }\r\n addInvoiceSettings(lineItemData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoiceSettings/add\", lineItemData);\r\n }\r\n updateInvoiceSettings(invoiceSettingId: number , lineItemData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoiceSettings/update/\" + invoiceSettingId, lineItemData);\r\n }\r\n addInvoice(invoiceData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoice/add\", invoiceData);\r\n }\r\n updateInvoice(invoiceId: number, invoiceData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoice/update/\" + invoiceId, invoiceData);\r\n }\r\n addLineItem(lineItemData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoiceLineItem/add\", lineItemData);\r\n }\r\n getProductTypes(productTypeId: number, name: any, isActive: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/productType/\" + productTypeId + '/' + name + '/' + isActive);\r\n }\r\n updateInvoiceProduct(productId: number, ProductData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoiceProduct/update/\" + productId, ProductData);\r\n }\r\n voidInvoice(invoiceId: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/voidInvoice/\" + invoiceId);\r\n }\r\n addInvoiceProduct(ProductData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/invoiceProduct/add\", ProductData);\r\n }\r\n searchInvoice(invoiceNumber: any ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoice/\" + invoiceNumber);\r\n }\r\n exportToSage(invoiceId: any ) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceExportToSage/\" + invoiceId, {headers: new HttpHeaders().set('Content-Type', 'text/csv'), responseType: 'blob'});\r\n }\r\n downloadInvoice(invoiceId: any ) {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/downloadInvoice/\" + invoiceId, {headers: new HttpHeaders().set('Content-Type', 'application/pdf'), responseType: 'blob'});\r\n }\r\n raiseCreditNote(invoiceId: any ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/raiseCreditNote/\" + invoiceId);\r\n }\r\n raiseBlankCreditNote(clientId: any ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/raiseBlankCreditNote/\" + clientId);\r\n }\r\n finaliseInvoice(invoiceId: any ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/finaliseInvoice/\" + invoiceId);\r\n }\r\n sendInvoice(invoiceId: number, invoiceData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/sendInvoice/\" + invoiceId, invoiceData);\r\n }\r\n completeInvoice(invoiceId: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/completeInvoice/\" + invoiceId);\r\n }\r\n invoiceSentItems(clientId: number, pageNo: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceSentItems/\" + clientId + '/' + pageNo);\r\n }\r\n changeInvoiceDate(invoiceId: number, invoiceData: any ): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/changeInvoiceDate/\" + invoiceId, invoiceData);\r\n }\r\n changeInvoicePaymentType(invoiceId: number, paymentTypeId: number, isPermanent: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/changeInvoicePaymentType/\" + invoiceId + '/' + paymentTypeId + '/' + isPermanent);\r\n }\r\n changeInvoiceTariff(invoiceId: number, tariffId: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/changeInvoiceTariff/\" + invoiceId + '/' + tariffId);\r\n }\r\n downloadAllInvoices(){\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/downloadAllInvoices\", {headers: new HttpHeaders().set('Content-Type', 'application/pdf'), responseType: 'blob'});\r\n }\r\n deleteInvoiceRecurringProduct(productId: number, clientId: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/deleteInvoiceRecurringProduct/\" + productId + '/' + clientId);\r\n }\r\n\r\n updateInvoiceRecurringProduct(recurringId: number, quantity: number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/invoiceRecurringProduct/update/\" + recurringId + '/' + quantity);\r\n }\r\n \r\n}\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.css']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n
\\r\\n

Outbox

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Created Date\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Leave blank for all clients\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{contact.fullName}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Leave blank for all users\\r\\n \\r\\n \\r\\n \\r\\n {{ user.userName }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Generating CSV, please wait
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

No messages found, please change the filters.

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n 0 && !loading\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Date Taken\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n CreatedClientContactCaller/CompanyPhoneReferenceEmailMessageDelivery TypeUserActiveStatus
{{message.dateTaken | amLocal | amDateFormat: 'DD/MM/YYYY HH:mm'}}{{message.createdDate | amLocal | amDateFormat: 'DD/MM/YYYY HH:mm'}}{{message.clientName}}{{message.contactName}}{{message.callerName}}\\r\\n - {{message.company}}\\r\\n {{message.phoneNo}}{{message.reference}}{{message.email}}\\r\\n
{{message.message}}
\\r\\n
{{message.deliveryTypeName}}{{message.userName}}\\r\\n done\\r\\n clear\\r\\n \\r\\n
\\r\\n phone_android\\r\\n phone_android\\r\\n phone_android\\r\\n email\\r\\n email\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LWxpbmUtaXRlbS1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","export default \"
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n mode_comment\\r\\n Kendcomm\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Reset Password

\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n

No recurring products returned.

\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n Product Name\\r\\n \\r\\n Product Code\\r\\n \\r\\n Quantity\\r\\n \\r\\n Unit Cost\\r\\n \\r\\n Total\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n {{product.productName}}\\r\\n \\r\\n {{product.productCode}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{product.unitCost}}\\r\\n \\r\\n {{product.quantity * product.unitCost}}\\r\\n \\r\\n \\r\\n save\\r\\n \\r\\n \\r\\n \\r\\n delete\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\";","export default \"
\\r\\n\\r\\n \\r\\n

Add Office

\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 4 Characters - numberical only\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n Out of Hours\\r\\n

\\r\\n\\r\\n Head Office\\r\\n

\\r\\n Use SSL\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","export class MovementData{\r\n errors: any[] | null;\r\n movementDetails: MovementDetails | null;\r\n }\r\n export class MovementDetails{\r\n movements: Movements[];\r\n totalCount: number;\r\n }\r\n export class Movements{\r\n clientId: number;\r\n clientName: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n endDate: string;\r\n forwardTo: string;\r\n forwardToId: number;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n movementId: number;\r\n notes: string;\r\n outOfOffice: string;\r\n outOfOfficeId: number;\r\n startDate: string;\r\n totalCount: number;\r\n }\r\n export class Movement{\r\n clientId: number;\r\n clientName: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n endDate: string;\r\n forwardTo: string;\r\n forwardToId: number;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n movementId: number;\r\n notes: string;\r\n outOfOffice: string;\r\n outOfOfficeId: number;\r\n startDate: string;\r\n totalCount: number;\r\n }","import { Component, OnInit, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, AddInvoiceData } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'add-invoice-item-dialog',\r\n templateUrl: './add-invoice-dialog.component.html',\r\n styleUrls: ['./add-invoice-dialog.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService]\r\n})\r\nexport class AddInvoiceDialogComponent implements OnInit {\r\n invoiceData: AddInvoiceData;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.invoiceData = this.data;\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n add(invoiceData: any) {\r\n console.log(invoiceData);\r\n this.invoicingService.addInvoice(invoiceData).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoice created\");\r\n this.router.navigate(['/invoicing/invoice/' + resp.invoiceId]);\r\n this.dialogRef.close();\r\n }\r\n })\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable} from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormsModule } from '@angular/forms';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { PageEvent } from '@angular/material/paginator';\r\n\r\n\r\n\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { ContactData, ContactDetails, Contacts, Contact } from '../../models/contactData';\r\n\r\n\r\n@Component({\r\n selector: 'app-contacts',\r\n templateUrl: './contacts.component.html',\r\n styleUrls: ['./contacts.component.css'],\r\n providers: [ClientsContactsService]\r\n})\r\nexport class ContactsComponent implements OnInit {\r\n listOfContacts: any;\r\n noOfContacts: any;\r\n clientId: number = 0;\r\n\r\n isActiveFilter:number = 1;\r\n activeStates = [\r\n {value: 0, viewValue: 'All'},\r\n {value: 1, viewValue: 'Active'},\r\n {value: 2, viewValue: 'Inactive'}\r\n ];\r\n\r\n constructor(public clientsContactsService: ClientsContactsService, private router: Router, private route: ActivatedRoute, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.clientId = +this.route.snapshot.paramMap.get('clientId');\r\n\r\n //this.getContacts(this.clientId , this.isActiveFilter, 1);\r\n }\r\n\r\n reset(){\r\n\r\n this.isActiveFilter = 1;\r\n this.getContacts(this.clientId , this.isActiveFilter, 1);\r\n }\r\n\r\n pageEvent: PageEvent;\r\n setPage(event) {\r\n console.log(event);\r\n this.getContacts(this.clientId , this.isActiveFilter, event.pageIndex + 1);\r\n \r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n copyLink(text:string) {\r\n var event = (e: ClipboardEvent) => {\r\n e.clipboardData.setData('text/plain', text);\r\n e.preventDefault();\r\n document.removeEventListener('copy', event);\r\n this.openSnackBar(\"Copied to clipboard\");\r\n }\r\n document.addEventListener('copy', event);\r\n document.execCommand('copy');\r\n}\r\n\r\n getContacts(clientId: number, isActive: number, pageNo: number) {\r\n this.clientsContactsService.getContacts(0, '0', clientId, isActive, 0, 0, 1, 'ASC', pageNo).subscribe(resp => {\r\n this.noOfContacts = resp.contactDetails.totalCount;\r\n this.listOfContacts = resp.contactDetails.contacts;\r\n\r\n\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\n\r\nimport { Observable , BehaviorSubject } from 'rxjs';\r\n\r\n\r\n\r\n\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\nimport { JournalData, JournalMessages, JournalMessage } from '../models/journalData';\r\n\r\n@Injectable()\r\nexport class JournalsService {\r\n\r\n private noOfJournals = new BehaviorSubject(0);\r\n\r\n currentNoOfJournals = this.noOfJournals.asObservable();\r\n\r\n updateJournal(data: JournalData){\r\n console.log(data);\r\n this.noOfJournals.next(data.messageId.totalCount);\r\n //return this.noOfJournals.asObservable();\r\n }\r\n\r\n getNoJournals(): Observable {\r\n return this.noOfJournals.asObservable();\r\n }\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n getJournals(userId: number, deliveryType: number, phone: number, status: number, journal: number, pageNo: number): Observable {\r\n if(userId === 0){\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/journal/\" + userId + '/' + deliveryType + '/' + phone + '/' + status + '/' + journal + '/' + pageNo);\r\n }\r\n else{\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/journal/\" + userId + '/' + deliveryType + '/' + phone + '/' + status + '/' + journal + '/' + pageNo).do(data => this.updateJournal(data));\r\n }\r\n }\r\n addJournals(messageIds: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/journal/add/\" + messageIds);\r\n }\r\n}\r\n","export class NoticeData{\r\n errors: any[] | null;\r\n notices: NoticeDetails[] | null;\r\n }\r\n export class NoticeDetails{\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n endDate: string;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n notice: string;\r\n noticeId: number;\r\n officeId: number;\r\n officeName: string;\r\n reminderDate: string;\r\n startDate: string;\r\n }\r\n export class NoticeDetail{\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n endDate: string;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n notice: string;\r\n noticeId: number;\r\n officeId: number;\r\n officeName: string;\r\n reminderDate: string;\r\n startDate: string;\r\n }\r\n ","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Leave blank for all clients\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

No templates returned, please change the filter or create a template.

\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MessageClientGlobalActiveAudit
{{template.message}}
{{template.clientName}}\\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n Created: {{template.createdDate | amDateFormat:'LL'}} by {{template.createdBy}}\\r\\n 0\\\">\\r\\n
Last updated: {{template.lastUpdatedDate | amDateFormat:'LL'}} by {{template.lastUpdatedBy}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\";","export default \"
\\r\\n\\r\\n \\r\\n

Add Contact

\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Contact Details\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Mobile Private\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Phone Private\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Fax Private\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{deliveryType.name}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n Default Contact\\r\\n
\\r\\n
\\r\\n\\r\\n Principle\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Email Address 1 Settings\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Use a semi-colon for multiple email addresses\\r\\n \\r\\n
\\r\\n
\\r\\n Email Address1 Eod\\r\\n
\\r\\n
\\r\\n Email Address1 Private\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Email Address 2 Settings\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Use a semi-colon for multiple email addresses\\r\\n \\r\\n
\\r\\n
\\r\\n Email Address2 Eod\\r\\n
\\r\\n
\\r\\n Email Address1 Private\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2VyLWRldGFpbC5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\r\\n

Delete Line Item

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\";","export default \"
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n mode_comment\\r\\n Kendcomm {{env}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Login

\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Forgotten password\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Request Password Reset

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n Back to login\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJqb3VybmFscy5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwcmludC1tb3ZlbWVudC5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvZmZpY2UtY2xpZW50cy5jb21wb25lbnQuY3NzIn0= */\";","export default \"
\\r\\n\\r\\n \\r\\n

Add User

\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Used for logging in to Kendcomm\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n EOD Summary Email\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{role.name}}\\r\\n \\r\\n {{role.description}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice } from '../../models/invoiceData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product, InvoiceRecurringProductsData, RecurringProducts } from '../../models/invoicingProductsData';\r\n\r\n@Component({\r\n selector: 'app-client-recurring-products',\r\n templateUrl: './client-recurring-products.component.html',\r\n styleUrls: ['./client-recurring-products.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class ClientRecurringProductsComponent implements OnInit {\r\n clientId:number = 0;\r\n listOfRecurringProducts: RecurringProducts[] = [];\r\n\r\n constructor(public invoicingService: InvoicingService, public snackBar: MatSnackBar, private router: Router, private route: ActivatedRoute) { \r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n /*\r\n this.route.params.forEach(params => {\r\n this.clientId = params[\"clientId\"];\r\n //call your function, like getUserInfo()\r\n this.getRecurringProducts(this.clientId);\r\n })\r\n */\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n remove(product: RecurringProducts){\r\n\r\n this.invoicingService.deleteInvoiceRecurringProduct(product.productId, this.clientId).subscribe(resp => {\r\n\r\n if(resp.errors.length > 0){\r\n this.openSnackBar(resp.errors[0].error);\r\n \r\n }else{\r\n this.openSnackBar(\"Recurring Product removed\");\r\n this.getRecurringProducts(this.clientId);\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n qty(val, id){\r\nconsole.log(\"qty\" + val)\r\n if(val > 0){\r\n\r\n this.invoicingService.updateInvoiceRecurringProduct(id, val).subscribe(resp => {\r\n\r\n if(resp.errors.length > 0){\r\n this.openSnackBar(resp.errors[0].error);\r\n \r\n }else{\r\n \r\n this.openSnackBar(\"Quantity updated\");\r\n \r\n }\r\n })\r\n }else{\r\n this.openSnackBar(\"Quantity format error\");\r\n }\r\n\r\n }\r\n\r\n getRecurringProducts(clientId: number){\r\n\r\n this.invoicingService.getInvoiceRecurringProduct(0, clientId).subscribe(resp => {\r\n\r\n if(resp.errors.length > 0){\r\n this.openSnackBar(resp.errors[0].error);\r\n \r\n }else{\r\n this.listOfRecurringProducts = resp.recurringProducts;\r\n \r\n }\r\n })\r\n\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n\\r\\n

Template Details

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\nGlobal\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n

\\r\\n Active\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n



\\r\\nCreated: {{templateData.createdDate | amDateFormat: 'YYYY-MM-DD HH:mm'}} by\\r\\n {{templateData.createdBy}}\\r\\n | Last updated: {{templateData.lastUpdatedDate | amDateFormat: 'YYYY-MM-DD HH:mm'}} by\\r\\n {{templateData.lastUpdatedBy}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\";","export class eodData {\r\n errors: any[] | null;\r\n userId: number = 0;\r\n contactId: number = 0;\r\n clientId: number = 0;\r\n callerName: number = 0;\r\n phone: number = 0;\r\n email: number = 0;\r\n reference: number = 0;\r\n company: number = 0;\r\n statusId: number = 0;\r\n deliveryTypeId: number = 0;\r\n message: number = 0;\r\n messageSearch: number = 0;\r\n fromCreatedDate: string;\r\n toCreatedDate: string;\r\n isActive: number = 1; \r\n }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjb25maXJtLXBhdGNoLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhc3NpZ24tcmVjdXJyaW5nLXByb2R1Y3QtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { MessageSend, NewMessage, MessageData, MessageDetails, Messages, MessageSearch } from '../../models/messageData';\r\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../../models/deliveryData';\r\n\r\nimport { MessagesService } from '../../services/messages.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { ViewMessageDialogComponent } from '../../components/view-message-dialog/view-message-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-client-messages',\r\n templateUrl: './client-messages.component.html',\r\n styleUrls: ['./client-messages.component.css'],\r\n providers: [MessagesService, ClientsContactsService]\r\n})\r\nexport class ClientMessagesComponent implements OnInit {\r\n listOfMessages: MessageData;\r\n noOfMessages: number;\r\n filterByDate: boolean = false;\r\n messageFromDateFinal: any;\r\n messageToDateFinal: any;\r\n fromDate: any = '0';\r\n toDate: any = '0';\r\n deliveryTypeFilter: number = 0;\r\n deliveryTypes: DeliveryTypes[];\r\n deliveryStates = [{ value: 0, viewValue: 'Any' }];\r\n isActiveFilter: number = 1;\r\n clientId: number = 0;\r\n pageNo: number = 1;\r\n messageContent: any = 0;\r\n messageSearchData: MessageSearch;\r\n\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n\r\n constructor(public messagesService: MessagesService, private router: Router, private route: ActivatedRoute, public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar, public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n //this.getMessages(this.clientId, 0, this.deliveryTypeFilter, 1);\r\n //this.getDeliveryTypes();\r\n\r\n this.messageSearchData = new MessageSearch;\r\n\r\n this.fromDate = moment().subtract(7, 'days').toDate();\r\n this.toDate = moment().toDate();\r\n }\r\n\r\n openSnackBarError(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n\r\n });\r\n }\r\n getDeliveryTypes() {\r\n this.clientsContactsService.getDeliveryType(0, 0, 1).subscribe(resp => {\r\n this.deliveryTypes = resp.deliveryTypes;\r\n this.deliveryTypes.forEach((type, i) => {\r\n\r\n this.deliveryStates.push({ value: i + 1, viewValue: type.name });\r\n\r\n });\r\n });\r\n\r\n }\r\n\r\n setRange(filterByDate){\r\n\r\n\r\n\r\n }\r\n\r\n setPage(event) {\r\n console.log(event);\r\n this.getMessages(this.clientId, 0, this.deliveryTypeFilter, event.pageIndex + 1);\r\n }\r\n reset() {\r\n this.messageFromDateFinal = '0';\r\n this.messageToDateFinal = '0';\r\n this.isActiveFilter = 1;\r\n this.deliveryTypeFilter = 0;\r\n this.pageNo = 0;\r\n this.getMessages(this.clientId, 0, this.deliveryTypeFilter, 1);\r\n\r\n }\r\n public getMessages(clientId: number, statusId: number, deliveryTypeId: number, pageNo: number) {\r\n\r\n if (this.filterByDate) {\r\n\r\n this.messageFromDateFinal = moment(this.fromDate).format('YYYY-MM-DD');\r\n this.messageToDateFinal = moment(this.toDate).format('YYYY-MM-DD');\r\n } else {\r\n this.messageFromDateFinal = '0';\r\n this.messageToDateFinal = '0';\r\n }\r\n this.messageSearchData.fromCreatedDate = this.messageFromDateFinal;\r\n this.messageSearchData.toCreatedDate = this.messageToDateFinal;\r\n this.messageSearchData.clientId = clientId;\r\n this.messageSearchData.deliveryTypeId = this.deliveryTypeFilter;\r\n this.messageSearchData.pageNo = pageNo;\r\n\r\n\r\n this.messagesService.getMessages(this.messageSearchData).subscribe(resp => {\r\n\r\n if (resp.errors.length == 0) {\r\n this.listOfMessages = resp;\r\n this.noOfMessages = resp.messageDetails.totalCount;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n }\r\n });\r\n\r\n }\r\n\r\n viewMessagetDialog(message): void {\r\n\r\n let dialogRef = this.dialog.open(ViewMessageDialogComponent, {\r\n width: '80%',\r\n data: { messageData: message }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvZmZpY2VzLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n 0\\\" [length]=\\\"noOfUsers\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event\\\">\\r\\n \\r\\n
\\r\\n

No users found, please change the filter or create a user.

\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameEmailActiveEOD SummaryPassword Reset
\\r\\n {{user.userName}}\\r\\n {{user.emailAddress}}\\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n \\r\\n
\\r\\n 0\\\" [length]=\\\"noOfUsers\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event\\\">\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n \\r\\n \\r\\n

Add Notice

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","var map = {\n\t\"./af\": \"K/tc\",\n\t\"./af.js\": \"K/tc\",\n\t\"./ar\": \"jnO4\",\n\t\"./ar-dz\": \"o1bE\",\n\t\"./ar-dz.js\": \"o1bE\",\n\t\"./ar-kw\": \"Qj4J\",\n\t\"./ar-kw.js\": \"Qj4J\",\n\t\"./ar-ly\": \"HP3h\",\n\t\"./ar-ly.js\": \"HP3h\",\n\t\"./ar-ma\": \"CoRJ\",\n\t\"./ar-ma.js\": \"CoRJ\",\n\t\"./ar-sa\": \"gjCT\",\n\t\"./ar-sa.js\": \"gjCT\",\n\t\"./ar-tn\": \"bYM6\",\n\t\"./ar-tn.js\": \"bYM6\",\n\t\"./ar.js\": \"jnO4\",\n\t\"./az\": \"SFxW\",\n\t\"./az.js\": \"SFxW\",\n\t\"./be\": \"H8ED\",\n\t\"./be.js\": \"H8ED\",\n\t\"./bg\": \"hKrs\",\n\t\"./bg.js\": \"hKrs\",\n\t\"./bm\": \"p/rL\",\n\t\"./bm.js\": \"p/rL\",\n\t\"./bn\": \"kEOa\",\n\t\"./bn-bd\": \"loYQ\",\n\t\"./bn-bd.js\": \"loYQ\",\n\t\"./bn.js\": \"kEOa\",\n\t\"./bo\": \"0mo+\",\n\t\"./bo.js\": \"0mo+\",\n\t\"./br\": \"aIdf\",\n\t\"./br.js\": \"aIdf\",\n\t\"./bs\": \"JVSJ\",\n\t\"./bs.js\": \"JVSJ\",\n\t\"./ca\": \"1xZ4\",\n\t\"./ca.js\": \"1xZ4\",\n\t\"./cs\": \"PA2r\",\n\t\"./cs.js\": \"PA2r\",\n\t\"./cv\": \"A+xa\",\n\t\"./cv.js\": \"A+xa\",\n\t\"./cy\": \"l5ep\",\n\t\"./cy.js\": \"l5ep\",\n\t\"./da\": \"DxQv\",\n\t\"./da.js\": \"DxQv\",\n\t\"./de\": \"tGlX\",\n\t\"./de-at\": \"s+uk\",\n\t\"./de-at.js\": \"s+uk\",\n\t\"./de-ch\": \"u3GI\",\n\t\"./de-ch.js\": \"u3GI\",\n\t\"./de.js\": \"tGlX\",\n\t\"./dv\": \"WYrj\",\n\t\"./dv.js\": \"WYrj\",\n\t\"./el\": \"jUeY\",\n\t\"./el.js\": \"jUeY\",\n\t\"./en-au\": \"Dmvi\",\n\t\"./en-au.js\": \"Dmvi\",\n\t\"./en-ca\": \"OIYi\",\n\t\"./en-ca.js\": \"OIYi\",\n\t\"./en-gb\": \"Oaa7\",\n\t\"./en-gb.js\": \"Oaa7\",\n\t\"./en-ie\": \"4dOw\",\n\t\"./en-ie.js\": \"4dOw\",\n\t\"./en-il\": \"czMo\",\n\t\"./en-il.js\": \"czMo\",\n\t\"./en-in\": \"7C5Q\",\n\t\"./en-in.js\": \"7C5Q\",\n\t\"./en-nz\": \"b1Dy\",\n\t\"./en-nz.js\": \"b1Dy\",\n\t\"./en-sg\": \"t+mt\",\n\t\"./en-sg.js\": \"t+mt\",\n\t\"./eo\": \"Zduo\",\n\t\"./eo.js\": \"Zduo\",\n\t\"./es\": \"iYuL\",\n\t\"./es-do\": \"CjzT\",\n\t\"./es-do.js\": \"CjzT\",\n\t\"./es-mx\": \"tbfe\",\n\t\"./es-mx.js\": \"tbfe\",\n\t\"./es-us\": \"Vclq\",\n\t\"./es-us.js\": \"Vclq\",\n\t\"./es.js\": \"iYuL\",\n\t\"./et\": \"7BjC\",\n\t\"./et.js\": \"7BjC\",\n\t\"./eu\": \"D/JM\",\n\t\"./eu.js\": \"D/JM\",\n\t\"./fa\": \"jfSC\",\n\t\"./fa.js\": \"jfSC\",\n\t\"./fi\": \"gekB\",\n\t\"./fi.js\": \"gekB\",\n\t\"./fil\": \"1ppg\",\n\t\"./fil.js\": \"1ppg\",\n\t\"./fo\": \"ByF4\",\n\t\"./fo.js\": \"ByF4\",\n\t\"./fr\": \"nyYc\",\n\t\"./fr-ca\": \"2fjn\",\n\t\"./fr-ca.js\": \"2fjn\",\n\t\"./fr-ch\": \"Dkky\",\n\t\"./fr-ch.js\": \"Dkky\",\n\t\"./fr.js\": \"nyYc\",\n\t\"./fy\": \"cRix\",\n\t\"./fy.js\": \"cRix\",\n\t\"./ga\": \"USCx\",\n\t\"./ga.js\": \"USCx\",\n\t\"./gd\": \"9rRi\",\n\t\"./gd.js\": \"9rRi\",\n\t\"./gl\": \"iEDd\",\n\t\"./gl.js\": \"iEDd\",\n\t\"./gom-deva\": \"qvJo\",\n\t\"./gom-deva.js\": \"qvJo\",\n\t\"./gom-latn\": \"DKr+\",\n\t\"./gom-latn.js\": \"DKr+\",\n\t\"./gu\": \"4MV3\",\n\t\"./gu.js\": \"4MV3\",\n\t\"./he\": \"x6pH\",\n\t\"./he.js\": \"x6pH\",\n\t\"./hi\": \"3E1r\",\n\t\"./hi.js\": \"3E1r\",\n\t\"./hr\": \"S6ln\",\n\t\"./hr.js\": \"S6ln\",\n\t\"./hu\": \"WxRl\",\n\t\"./hu.js\": \"WxRl\",\n\t\"./hy-am\": \"1rYy\",\n\t\"./hy-am.js\": \"1rYy\",\n\t\"./id\": \"UDhR\",\n\t\"./id.js\": \"UDhR\",\n\t\"./is\": \"BVg3\",\n\t\"./is.js\": \"BVg3\",\n\t\"./it\": \"bpih\",\n\t\"./it-ch\": \"bxKX\",\n\t\"./it-ch.js\": \"bxKX\",\n\t\"./it.js\": \"bpih\",\n\t\"./ja\": \"B55N\",\n\t\"./ja.js\": \"B55N\",\n\t\"./jv\": \"tUCv\",\n\t\"./jv.js\": \"tUCv\",\n\t\"./ka\": \"IBtZ\",\n\t\"./ka.js\": \"IBtZ\",\n\t\"./kk\": \"bXm7\",\n\t\"./kk.js\": \"bXm7\",\n\t\"./km\": \"6B0Y\",\n\t\"./km.js\": \"6B0Y\",\n\t\"./kn\": \"PpIw\",\n\t\"./kn.js\": \"PpIw\",\n\t\"./ko\": \"Ivi+\",\n\t\"./ko.js\": \"Ivi+\",\n\t\"./ku\": \"JCF/\",\n\t\"./ku.js\": \"JCF/\",\n\t\"./ky\": \"lgnt\",\n\t\"./ky.js\": \"lgnt\",\n\t\"./lb\": \"RAwQ\",\n\t\"./lb.js\": \"RAwQ\",\n\t\"./lo\": \"sp3z\",\n\t\"./lo.js\": \"sp3z\",\n\t\"./lt\": \"JvlW\",\n\t\"./lt.js\": \"JvlW\",\n\t\"./lv\": \"uXwI\",\n\t\"./lv.js\": \"uXwI\",\n\t\"./me\": \"KTz0\",\n\t\"./me.js\": \"KTz0\",\n\t\"./mi\": \"aIsn\",\n\t\"./mi.js\": \"aIsn\",\n\t\"./mk\": \"aQkU\",\n\t\"./mk.js\": \"aQkU\",\n\t\"./ml\": \"AvvY\",\n\t\"./ml.js\": \"AvvY\",\n\t\"./mn\": \"lYtQ\",\n\t\"./mn.js\": \"lYtQ\",\n\t\"./mr\": \"Ob0Z\",\n\t\"./mr.js\": \"Ob0Z\",\n\t\"./ms\": \"6+QB\",\n\t\"./ms-my\": \"ZAMP\",\n\t\"./ms-my.js\": \"ZAMP\",\n\t\"./ms.js\": \"6+QB\",\n\t\"./mt\": \"G0Uy\",\n\t\"./mt.js\": \"G0Uy\",\n\t\"./my\": \"honF\",\n\t\"./my.js\": \"honF\",\n\t\"./nb\": \"bOMt\",\n\t\"./nb.js\": \"bOMt\",\n\t\"./ne\": \"OjkT\",\n\t\"./ne.js\": \"OjkT\",\n\t\"./nl\": \"+s0g\",\n\t\"./nl-be\": \"2ykv\",\n\t\"./nl-be.js\": \"2ykv\",\n\t\"./nl.js\": \"+s0g\",\n\t\"./nn\": \"uEye\",\n\t\"./nn.js\": \"uEye\",\n\t\"./oc-lnc\": \"Fnuy\",\n\t\"./oc-lnc.js\": \"Fnuy\",\n\t\"./pa-in\": \"8/+R\",\n\t\"./pa-in.js\": \"8/+R\",\n\t\"./pl\": \"jVdC\",\n\t\"./pl.js\": \"jVdC\",\n\t\"./pt\": \"8mBD\",\n\t\"./pt-br\": \"0tRk\",\n\t\"./pt-br.js\": \"0tRk\",\n\t\"./pt.js\": \"8mBD\",\n\t\"./ro\": \"lyxo\",\n\t\"./ro.js\": \"lyxo\",\n\t\"./ru\": \"lXzo\",\n\t\"./ru.js\": \"lXzo\",\n\t\"./sd\": \"Z4QM\",\n\t\"./sd.js\": \"Z4QM\",\n\t\"./se\": \"//9w\",\n\t\"./se.js\": \"//9w\",\n\t\"./si\": \"7aV9\",\n\t\"./si.js\": \"7aV9\",\n\t\"./sk\": \"e+ae\",\n\t\"./sk.js\": \"e+ae\",\n\t\"./sl\": \"gVVK\",\n\t\"./sl.js\": \"gVVK\",\n\t\"./sq\": \"yPMs\",\n\t\"./sq.js\": \"yPMs\",\n\t\"./sr\": \"zx6S\",\n\t\"./sr-cyrl\": \"E+lV\",\n\t\"./sr-cyrl.js\": \"E+lV\",\n\t\"./sr.js\": \"zx6S\",\n\t\"./ss\": \"Ur1D\",\n\t\"./ss.js\": \"Ur1D\",\n\t\"./sv\": \"X709\",\n\t\"./sv.js\": \"X709\",\n\t\"./sw\": \"dNwA\",\n\t\"./sw.js\": \"dNwA\",\n\t\"./ta\": \"PeUW\",\n\t\"./ta.js\": \"PeUW\",\n\t\"./te\": \"XLvN\",\n\t\"./te.js\": \"XLvN\",\n\t\"./tet\": \"V2x9\",\n\t\"./tet.js\": \"V2x9\",\n\t\"./tg\": \"Oxv6\",\n\t\"./tg.js\": \"Oxv6\",\n\t\"./th\": \"EOgW\",\n\t\"./th.js\": \"EOgW\",\n\t\"./tk\": \"Wv91\",\n\t\"./tk.js\": \"Wv91\",\n\t\"./tl-ph\": \"Dzi0\",\n\t\"./tl-ph.js\": \"Dzi0\",\n\t\"./tlh\": \"z3Vd\",\n\t\"./tlh.js\": \"z3Vd\",\n\t\"./tr\": \"DoHr\",\n\t\"./tr.js\": \"DoHr\",\n\t\"./tzl\": \"z1FC\",\n\t\"./tzl.js\": \"z1FC\",\n\t\"./tzm\": \"wQk9\",\n\t\"./tzm-latn\": \"tT3J\",\n\t\"./tzm-latn.js\": \"tT3J\",\n\t\"./tzm.js\": \"wQk9\",\n\t\"./ug-cn\": \"YRex\",\n\t\"./ug-cn.js\": \"YRex\",\n\t\"./uk\": \"raLr\",\n\t\"./uk.js\": \"raLr\",\n\t\"./ur\": \"UpQW\",\n\t\"./ur.js\": \"UpQW\",\n\t\"./uz\": \"Loxo\",\n\t\"./uz-latn\": \"AQ68\",\n\t\"./uz-latn.js\": \"AQ68\",\n\t\"./uz.js\": \"Loxo\",\n\t\"./vi\": \"KSF8\",\n\t\"./vi.js\": \"KSF8\",\n\t\"./x-pseudo\": \"/X5v\",\n\t\"./x-pseudo.js\": \"/X5v\",\n\t\"./yo\": \"fzPg\",\n\t\"./yo.js\": \"fzPg\",\n\t\"./zh-cn\": \"XDpg\",\n\t\"./zh-cn.js\": \"XDpg\",\n\t\"./zh-hk\": \"SatO\",\n\t\"./zh-hk.js\": \"SatO\",\n\t\"./zh-mo\": \"OmwH\",\n\t\"./zh-mo.js\": \"OmwH\",\n\t\"./zh-tw\": \"kOpN\",\n\t\"./zh-tw.js\": \"kOpN\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"RnhZ\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LXRlbXBsYXRlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-delete-line-item-dialog',\r\n templateUrl: './delete-line-item-dialog.component.html',\r\n styleUrls: ['./delete-line-item-dialog.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService]\r\n})\r\nexport class DeleteLineItemDialogComponent implements OnInit {\r\n lineItem: LineItems;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n\r\n this.lineItem = this.data.lineItem;\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n deleteLineItem() {\r\n\r\n this.lineItem.isActive = false;\r\n\r\n this.invoicingService.updateLineItem(this.lineItem.lineItemId, this.lineItem).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Line Item deleted\");\r\n\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n\r\n })\r\n\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvZmZpY2UtZGV0YWlsLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit, Inject, ViewEncapsulation } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Router, ActivatedRoute, Params } from '@angular/router';\nimport { MatSnackBar } from '@angular/material/snack-bar';\n\nimport { InvoicingService } from '../../services/invoicing.service';\nimport { InvoiceData, Invoices, Invoice, LineItems, AddInvoiceData } from '../../models/invoiceData';\n\n@Component({\n selector: 'app-raise-credit-note-dialog',\n templateUrl: './raise-credit-note-dialog.component.html',\n styleUrls: ['./raise-credit-note-dialog.component.css'],\n providers: [InvoicingService]\n})\nexport class RaiseCreditNoteDialogComponent implements OnInit {\n invoiceData: AddInvoiceData;\n\n constructor(private router: Router, private route: ActivatedRoute, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) {\n\n\n }\n\n ngOnInit() {\n this.invoiceData = this.data.invoiceData;\n }\n\n openSnackBar(message: string) {\n this.snackBar.open(message, \"close\", {\n duration: 2500,\n });\n }\n\n createNote(invoiceData: any) {\n console.log(invoiceData);\n this.invoicingService.raiseCreditNote(invoiceData.invoiceId).subscribe(resp => {\n\n if (resp.errors.length > 0) {\n this.openSnackBar(resp.errors[0].error);\n } else {\n this.openSnackBar(\"Credit note created\");\n this.router.navigate(['/invoicing/invoice/' + resp.invoiceId]);\n this.dialogRef.close();\n }\n })\n }\n}\n","export default \"\\r\\n

Add Invoice

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem, EmailInvoiceData } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-email-invoice-dialog',\r\n templateUrl: './email-invoice-dialog.component.html',\r\n styleUrls: ['./email-invoice-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class EmailInvoiceDialogComponent implements OnInit {\r\n emailDetails: EmailInvoiceData;\r\n rForm: FormGroup;\r\n emailData: any;\r\n loading: boolean = false;\r\n\r\n constructor(private fb: FormBuilder, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n 'toEmailAddress': ['', Validators.required],\r\n 'emailMessage': [''],\r\n 'bccEmailAddress': [''],\r\n 'ccEmailAddress': ['']\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.emailData = {\r\n toEmailAddress: '',\r\n emailMessage: '',\r\n bccEmailAddress: '',\r\n ccEmailAddress: '',\r\n\r\n }\r\n\r\n this.emailDetails = new EmailInvoiceData();\r\n\r\n this.emailData.toEmailAddress = this.data.client.invoiceToEmails;\r\n this.emailData.emailMessage = this.data.invoiceSettings.invoiceEmailTemplate;\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n emailInvoice(post){\r\n this.loading = true;\r\n this.invoicingService.sendInvoice(this.data.invoice.invoiceId, this.emailData).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n this.openSnackBar(\"Invoice Emailed\");\r\n this.loading = false;\r\n this.dialogRef.close();\r\n }\r\n })\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SwUpdate } from '@angular/service-worker';\r\nimport { Router } from '@angular/router';\r\n//import { LoadingBarService } from '@ngx-loading-bar/core';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n\r\n versionCheck :any;\r\n \r\n //constructor(public loader: LoadingBarService) {}\r\n constructor(private swUpdate: SwUpdate, private router: Router) {\r\n\r\n}\r\n\r\n ngOnInit() {\r\n\r\n if (this.swUpdate.isEnabled) {\r\n\r\n this.swUpdate.available.subscribe(() => {\r\n\r\n if(confirm(\"New version of Kendcom is available. Load New Version?\")) {\r\n\r\n window.location.reload();\r\n }\r\n });\r\n } \r\n // listenging to routing navigation event\r\n //this.router.events.subscribe(event => this.modifyHeader(event));\r\n //console.log('NavigationEnd:', event); \r\n}\r\n \r\n \r\n}\r\n","export default \"
\\r\\n \\r\\n \\r\\n

Assign Recurring Product

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ product.productName }} ({{product.productCode}})\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { NoticeData, NoticeDetails, NoticeDetail } from '../../models/noticeData';\r\n\r\n@Component({\r\n selector: 'app-view-notice-dialog',\r\n templateUrl: './view-notice-dialog.component.html',\r\n styleUrls: ['./view-notice-dialog.component.css'],\r\n providers: [OfficesUsersRolesService]\r\n})\r\nexport class ViewNoticeDialogComponent implements OnInit {\r\n\r\n rForm: FormGroup;\r\n noticeData: NoticeDetail\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public snackBar: MatSnackBar, ) { \r\n this.rForm = fb.group({\r\n 'officeId': [null],\r\n 'notice': [null],\r\n 'startDate': [moment().toDate(), Validators.required],\r\n 'reminderDate': [moment().toDate(), Validators.required],\r\n 'endDate': [moment().add(7, 'days').toDate(), Validators.required],\r\n 'isActive': [true]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.noticeData = this.data.noticeData;\r\n this.rForm.controls['startDate'].setValue(moment(this.data.noticeData.startDate).toDate());\r\n this.rForm.controls['reminderDate'].setValue(moment(this.data.noticeData.reminderDate).toDate());\r\n this.rForm.controls['endDate'].setValue(moment(this.data.noticeData.endDate).toDate());\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n updateNotice(post) {\r\n if(moment(post.startDate).isValid()){\r\n this.noticeData.startDate = post.startDate;\r\n }\r\n if(moment(post.reminderDate).isValid()){\r\n this.noticeData.reminderDate = post.reminderDate;\r\n }\r\n if(moment(post.endDate).isValid()){\r\n this.noticeData.endDate = post.endDate;\r\n }\r\n\r\n\r\n this.officesUsersRolesService.updateNotices(this.noticeData, this.noticeData.noticeId).subscribe(resp => {\r\n \r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n \r\n this.openSnackBar(\"Notice Updated\");\r\n this.dialogRef.close();\r\n \r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","export default \"
\\n\\n

Email Message Report

\\n
\\n\\n\\n
\\n \\n \\n
\\n
\\n Report will be sent to EOD users.\\n\\n \\n
\\n
\\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n
\\n\\n
\\n\\n \\n \\n\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZG1pbi5jb21wb25lbnQuY3NzIn0= */\";","export default \"
\\r\\n \\r\\n

Add Invoice Product

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ type.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taxcode.code }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Global\\r\\n
\\r\\n
\\r\\n Display in Invoice\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../models/officeData';\r\nimport { UserData, UserDetails, Users, User } from '../models/userData';\r\nimport { RoleData, Roles, Role } from '../models/roleData';\r\nimport { UserRolesData, UserRoles } from '../models/userRolesData';\r\nimport { NoticeData, NoticeDetails } from '../models/noticeData';\r\n\r\n@Injectable()\r\nexport class OfficesUsersRolesService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n\r\n getOffices(officeId: number, name:any, isActive:number, pageNo:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/office/\" + officeId + \"/\" + name + \"/\" + isActive + \"/\" + pageNo);\r\n }\r\n updateOffice(officeId: number, updateData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/office/update/\" + officeId, updateData);\r\n }\r\n addOffice(addData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/office/add\", addData);\r\n }\r\n getUsers(userId: number, userName:any, officeId:number, isActive:number, sortId: number, sortDir: string, pageNo:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/user/\" + userId + \"/\" + userName + \"/\" + officeId + \"/\" + isActive + \"/\" + sortId + '/' + sortDir + '/' + pageNo);\r\n }\r\n addUser(roleIds: string, addData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/user/add/\" + roleIds, addData);\r\n }\r\n getRoles(roleId: number, name: any, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/role/\" + roleId + '/' + name + '/' + isActive);\r\n }\r\n updateUser(userId: number, roleIds: string, updateData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/user/update/\" + userId + '/' + roleIds, updateData);\r\n }\r\n getUserRoles(userId: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/userRoles/\" + userId);\r\n }\r\n passwordReset(useremailaddress: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/password/forgottenPassword/\" + useremailaddress);\r\n }\r\n getNotices(noticeId: number, officeId: number, isActive: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/notice/\" + noticeId + '/' + officeId + '/' + isActive);\r\n }\r\n addNotices(noticeData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/notice/add\", noticeData);\r\n }\r\n updateNotices(noticeData: any, noticeId: number): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/notice/update/\" + noticeId, noticeData);\r\n } \r\n endOfDelivery(officeId: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/endOfDelivery/\" + officeId);\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ1c2Vycy5jb21wb25lbnQuY3NzIn0= */\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Reporting

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Filters\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Leave blank for all user\\r\\n \\r\\n \\r\\n \\r\\n {{ user.userName }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Leave blank for all clients\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n Date Range\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n User Stats\\r\\n \\r\\n
\\r\\n Generating CSV, please wait\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

No users stats, please change the filter

\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameMessages
\\r\\n {{user.userName}}\\r\\n {{user.totalMessages}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Filters\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Leave blank for all clients\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Date Range\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n Client Stats\\r\\n \\r\\n
Generating CSV, please wait
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

No client stats, please change the filter..

\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameMessages
\\r\\n {{client.clientName}}\\r\\n {{client.totalMessages}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Filters\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Leave blank for all clients\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Date Range\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n Client Movements\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n
Generating CSV, please wait
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

No movements, please change the filter

\\r\\n
\\r\\n
0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
ClientStart DateEnd DateNotesForward ToOut of OfficeActiveAudit
{{movement.clientName}}{{movement.startDate | amDateFormat:'LL'}}{{movement.endDate | amDateFormat:'LL'}}{{movement.notes}}{{movement.forwardTo}}{{movement.outOfOffice}}\\r\\n done\\r\\n clear\\r\\n \\r\\n Created: {{movement.createdDate | amDateFormat:'LL'}} by {{movement.createdBy}}\\r\\n 0\\\">\\r\\n
Last updated: {{movement.lastUpdatedDate | amDateFormat:'LL'}} by {{movement.lastUpdatedBy}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Message Totals by client\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Filters\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ office.name }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ status.name }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Leave blank for all clients\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n Date Range\\r\\n
\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n With line items?\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Clients report\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{day.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{day.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {Observable} from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\nimport { EmailValidator } from '@angular/forms';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client } from '../../models/clientData';\r\nimport { ContactData, ContactDetails, Contacts, Contact } from '../../models/contactData';\r\nimport { DeliveryData, DeliveryType, DeliveryTypes } from '../../models/deliveryData';\r\n\r\n@Component({\r\n selector: 'app-add-contact-dialog',\r\n templateUrl: './add-contact-dialog.component.html',\r\n styleUrls: ['./add-contact-dialog.component.css'],\r\n providers: [ClientsContactsService]\r\n})\r\nexport class AddContactDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n listOfDeliveryTypes: DeliveryType[] = [];\r\n newContact: Contact;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb:FormBuilder, public clientsContactsService:ClientsContactsService, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n \r\n 'title': [null],\r\n 'firstName': [null, Validators.required],\r\n 'surname': [null],\r\n 'deliveryTypeId': [null, Validators.required],\r\n 'emailAddress1': [''],\r\n 'emailAddress2': [''],\r\n 'faxNo': [null],\r\n 'isDefaultContact': [false],\r\n 'isEmailAddress1Eod': [false],\r\n 'isEmailAddress1Mod': [false],\r\n 'isEmailAddress1Private': [false],\r\n 'isEmailAddress2Eod': [false],\r\n 'isEmailAddress2Mod': [false],\r\n 'isEmailAddress2Private': [false],\r\n 'isFaxNoPrivate': [false],\r\n 'position': [null],\r\n 'isMobileNoPrivate': [false],\r\n 'isPrinciple': [false],\r\n 'isPhoneNoPrivate': [false],\r\n 'mobileNo': [null],\r\n 'phoneNo': [null],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.newContact = new Contact();\r\n this.newContact.clientId = this.data.clientId;\r\n this.getDeliveryTypes();\r\n }\r\n getDeliveryTypes(){\r\n\r\n this.clientsContactsService.getDeliveryType(0, '0', 1).subscribe(resp =>{\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfDeliveryTypes = resp.deliveryTypes;\r\n }\r\n })\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n addContact(post){\r\n\r\n this.clientsContactsService.addContact(this.newContact).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Contact added\");\r\n this.dialogRef.close();\r\n } \r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\n\r\n\r\n@Component({\r\n selector: 'app-void-invoice-dialog',\r\n templateUrl: './void-invoice-dialog.component.html',\r\n styleUrls: ['./void-invoice-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class VoidInvoiceDialogComponent implements OnInit {\r\n invoiceId: number;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n\r\n this.invoiceId = this.data.invoice.invoiceId;\r\n\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n voidInvoice(invoiceId: number){\r\n\r\n this.invoicingService.voidInvoice(invoiceId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoice marked as Void\");\r\n\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n\r\nimport { ViewMessageDialogComponent } from '../../components/view-message-dialog/view-message-dialog.component';\r\nimport { JournalData, JournalMessages, JournalMessage } from '../../models/journalData';\r\nimport { MessageSend, NewMessage, MessageData, MessageDetails, Messages, MessageSearch } from '../../models/messageData';\r\n\r\nimport { MessagesService } from '../../services/messages.service';\r\n\r\nimport { JournalsService } from '../../services/journals.service';\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-journals',\r\n templateUrl: './journals.component.html',\r\n styleUrls: ['./journals.component.css'],\r\n providers: [UserSessionService, MessagesService]\r\n})\r\nexport class JournalsComponent implements OnInit {\r\n myJournals: JournalMessage[] = [];\r\n myJournalsNo: number = 0;\r\n otherJournals: JournalMessage[] = [];\r\n otherJournalsNo: number = 0;\r\n userIdSubject: Observable;\r\n listOfMessages: Messages;\r\n pageNo: number = 0;\r\n messageSearchData: MessageSearch;\r\n\r\n constructor(public messagesService: MessagesService, public journalsService: JournalsService, public snackBar: MatSnackBar, public userSessionService: UserSessionService, public dialog: MatDialog) {\r\n\r\n\r\n this.userIdSubject = userSessionService.getUserId();\r\n\r\n console.log(this.userIdSubject);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.messageSearchData = new MessageSearch()\r\n this.userIdSubject.subscribe(id => this.getMyJournals(Number(id), 1))\r\n\r\n this.getOtherJournals(0, 1);\r\n }\r\n\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getMyJournals(userId: number, pageNo: number) {\r\n\r\n this.journalsService.getJournals(userId, 0, 0, 0, 0, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.myJournals = resp.messageId.messages;\r\n this.myJournalsNo = resp.messageId.totalCount;\r\n }\r\n });\r\n\r\n }\r\n\r\n setPage(event) {\r\n this.pageNo = event.pageIndex;\r\n this.userIdSubject.subscribe(id => this.getMyJournals(Number(id), event.pageIndex + 1))\r\n \r\n }\r\n\r\n setPageOther(event) {\r\n this.pageNo = event.pageIndex;\r\n this.getOtherJournals(0, event.pageIndex + 1);\r\n }\r\n\r\n getOtherJournals(userId: number, pageNo: number) {\r\n\r\n this.journalsService.getJournals(userId, 0, 0, 0, 0, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.otherJournals = resp.messageId.messages;\r\n this.otherJournalsNo = resp.messageId.totalCount;\r\n // this.journalsService.updateJournal(resp);\r\n }\r\n });\r\n\r\n }\r\n\r\n completeMyJournal(journal) {\r\n\r\n this.journalsService.addJournals(journal.messageId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.userIdSubject.subscribe(id => this.getMyJournals(Number(id), 1))\r\n this.openSnackBar(\"Journal Completed\");\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n completeOtherJournal(journal) {\r\n\r\n\r\n this.journalsService.addJournals(journal.messageId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.getOtherJournals(0, 1);\r\n this.openSnackBar(\"Journal Completed\");\r\n }\r\n });\r\n\r\n }\r\n\r\n viewMessagetDialog(message): void {\r\n\r\n this.messageSearchData.messageId = message.messageId;\r\n\r\n this.messagesService.getMessages(this.messageSearchData).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n let dialogRef = this.dialog.open(ViewMessageDialogComponent, {\r\n width: '1000px',\r\n data: { messageData: resp.messageDetails.messages[0] }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n })\r\n }\r\n}\r\n","export default \"\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjb250YWN0cy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { LoginService } from '../../services/login.service';\r\nimport { EmailValidator } from '@angular/forms';\r\nimport { AppSettings } from '../../app-settings';\r\n\r\nimport { MeData, Me, LoginDetails } from '../../models/meData';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.css'],\r\n providers: [LoginService, UserSessionService]\r\n})\r\nexport class LoginComponent implements OnInit {\r\n model: any = {};\r\n loading = false;\r\n error = '';\r\n token: string;\r\n email: string;\r\n password: string;\r\n isTimeout: number = 0;\r\n sub: any;\r\n showLogin: boolean = true;\r\n newLogin: LoginDetails;\r\n rForm: FormGroup;\r\n rForm2: FormGroup;\r\n env: string;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute,\r\n private loginService: LoginService, public snackBar: MatSnackBar, private fb: FormBuilder, public userSessionService: UserSessionService) {\r\n\r\n\r\n this.token = localStorage.getItem('Token');\r\n console.log('AuthGuard#canActivate called token ' + this.token);\r\n\r\n\r\n this.rForm = fb.group({\r\n\r\n 'email': [null, Validators.required],\r\n 'password': [null, Validators.required]\r\n\r\n });\r\n\r\n this.rForm2 = fb.group({\r\n\r\n 'email': [null, Validators.required]\r\n\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if(AppSettings.API_ENDPOINT === 'https://dev.kbperfecta.com/api/Kendcomm'){\r\n this.env = \"DEV\";\r\n }else if(AppSettings.API_ENDPOINT === 'https://uat.kbperfecta.com/api/Kendcomm'){\r\n this.env = \"UAT\";\r\n }else if(AppSettings.API_ENDPOINT === 'https://kbperfecta.com/api/Kendcomm'){\r\n this.env = \"\";\r\n }\r\n\r\n\r\n this.route.queryParams.subscribe((params: Params) => {\r\n this.isTimeout = params[\"timeout\"] || 0;\r\n console.log(this.isTimeout);\r\n if (this.isTimeout === 1) {\r\n this.openSnackBar(\"Your session has timeout.\");\r\n }\r\n if (this.isTimeout === 2) {\r\n this.openSnackBar(\"You are not logged in.\");\r\n\r\n }\r\n })\r\n\r\n\r\n\r\n this.newLogin = new LoginDetails();\r\n\r\n localStorage.removeItem('Token');\r\n localStorage.removeItem('userId');\r\n localStorage.removeItem('roles');\r\n localStorage.removeItem('officeId');\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 3500,\r\n });\r\n }\r\n\r\n login(post) {\r\n this.loading = true;\r\n\r\n this.loginService.login(this.newLogin).subscribe(resp => {\r\n \r\n\r\n if (resp.errors != null) {\r\n this.openSnackBar(resp.errors);\r\n this.showLogin = true;\r\n this.loading = false;\r\n } else {\r\n\r\n localStorage.setItem('Token', resp.token);\r\n this.getMe();\r\n }\r\n\r\n });\r\n\r\n }\r\n private getMe() {\r\n\r\n this.userSessionService.getMe().subscribe(resp => {\r\n \r\n this.router.navigate(['/messages']);\r\n this.loading = false;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n //this.sub.unsubscribe();\r\n }\r\n\r\n switchLogin() {\r\n if (this.showLogin) {\r\n this.showLogin = false;\r\n } else {\r\n this.showLogin = true;\r\n }\r\n\r\n }\r\n\r\n reset(post) {\r\n console.log(post);\r\n this.loginService.forgottenPassword(post.email).subscribe(resp => {\r\n\r\n if (!resp.success) {\r\n //this.showLogin = true;\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.showLogin = true;\r\n this.openSnackBar(\"Password reset requested, please check your email\");\r\n this.rForm2.reset();\r\n }\r\n\r\n });\r\n }\r\n\r\n\r\n}\r\n","export class InvoiceData {\r\n errors: any[] | null;\r\n invoices: Invoices;\r\n}\r\nexport class Invoices {\r\n invoices: Invoice[] | null;\r\n totalCount: number;\r\n}\r\nexport class Invoice {\r\n accountNo: string;\r\n clientId: number;\r\n clientName: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: any;\r\n endPeriod: any;\r\n footerText: string;\r\n invoiceId: number;\r\n invoiceNo: string;\r\n invoiceType: string;\r\n invoiceTypeId: number;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: any;\r\n lineItems: LineItems[] | null;\r\n officeId: number;\r\n officeName: string;\r\n startPeriod: any;\r\n status: string;\r\n statusId: number;\r\n taxDate: any;\r\n totalAmount: number;\r\n totalCount: number;\r\n totalInvoiceAmount: number;\r\n totalVat: number;\r\n invoicePdfPath: string;\r\n reference: string;\r\n paymentTypeId: number;\r\n paymentTypeName: string;\r\n isTariff: boolean;\r\n startDate?: string;\r\n endDate?: string;\r\n}\r\nexport class LineItems {\r\n amount: number;\r\n invoiceId: number;\r\n isActive: boolean;\r\n lineItemId: number;\r\n productCode: string;\r\n productId: number;\r\n productName: string;\r\n quantity: number;\r\n taxId: number;\r\n unitPrice: number;\r\n vatAmount: number;\r\n vatRate: number;\r\n description: string;\r\n productTypeId: number;\r\n}\r\nexport class InvoiceSettingsData {\r\n errors: any[] | null;\r\n invoiceSettings: InvoiceSettings[] | null;\r\n\r\n}\r\nexport class InvoiceSettings {\r\n creditNotePrefix: string;\r\n invoiceFooter: string;\r\n invoiceMessage: string;\r\n invoicePrefix: string;\r\n invoiceSettingId: number;\r\n invoiceTerms: string;\r\n isActive: boolean;\r\n name: string;\r\n officeId: number;\r\n officeName: string;\r\n ownerId: number;\r\n paymentTypeId: number;\r\n paymentTypeName: string;\r\n vatRegNumber: string;\r\n fromAddress: string;\r\n server:string;\r\n replyAddress: string;\r\n userName: string;\r\n port: string;\r\n password: string;\r\n invoiceEmailTemplate: string;\r\n}\r\nexport class InvoiceSetting {\r\n creditNotePrefix: string;\r\n invoiceFooter: string;\r\n invoiceMessage: string;\r\n invoicePrefix: string;\r\n invoiceSettingId: number;\r\n invoiceTerms: string;\r\n isActive: boolean;\r\n name: string;\r\n officeId: number;\r\n officeName: string;\r\n ownerId: number;\r\n paymentTypeId: number;\r\n paymentTypeName: string;\r\n vatRegNumber: string;\r\n fromAddress: string;\r\n server:string;\r\n replyAddress: string;\r\n userName: string;\r\n port: string;\r\n password: string;\r\n invoiceEmailTemplate: string;\r\n}\r\nexport class AddInvoiceData {\r\n clientId: number;\r\n officeId: number;\r\n invoiceTypeId: number;\r\n}\r\nexport class AddInvoicePOST {\r\n errors: any[] | null\r\n invoiceId: number;\r\n}\r\nexport class AddProductPOST {\r\n errors: any[] | null\r\n productId: number;\r\n}\r\nexport class AddLinePOST {\r\n errors: any[] | null\r\n lineItemId: number;\r\n}\r\nexport class AddLineItem {\r\n invoiceId: number;\r\n productId: number; \r\n quantity: number;\r\n unitPrice: number;\r\n taxId: number;\r\n isActive: boolean;\r\n description: string;\r\n productTypeId: number;\r\n}\r\n\r\nexport class VoidInvoice {\r\n errors: any[] | null\r\n invoiceId: number;\r\n}\r\n\r\n\r\nexport class AutocompleteInvoice {\r\n errors: any[] | null\r\n invoices: Invoice[] | null;\r\n}\r\n\r\nexport class EmailInvoiceData {\r\n toEmailAddress: string;\r\n bccEmailAddress: string;\r\n ccEmailAddress: string;\r\n emailMessage: string\r\n}\r\nexport class PostEmailInvoice {\r\n errors: any[] | null\r\n isSuccess: boolean;\r\n}\r\nexport class SentInvoiceData {\r\n errors: any[] | null\r\n sentInvoices: InvoiceSentItems;\r\n}\r\nexport class InvoiceSentItems {\r\n invoiceSentItems: InvoiceSentItem[] | null;\r\n totalCount: number;\r\n}\r\nexport class InvoiceSentItem {\r\n clientName: string;\r\n emailTo: string;\r\n invoiceNo: string;\r\n sentDate: string;\r\n totalCount: number\r\n}","export default \"\\r\\n

Contacts

\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
NameMobile PhonePositionEmailDefault ContactPrincipleActive
{{contact.fullName}}\\r\\n {{contact.mobileNo}}\\r\\n \\r\\n {{contact.mobileNo | hideVal}}\\r\\n {{contact.mobileNo}}\\r\\n \\r\\n \\r\\n {{contact.phoneNo}}\\r\\n \\r\\n {{contact.phoneNo | hideVal}}\\r\\n {{contact.phoneNo}}\\r\\n \\r\\n {{contact.position}}\\r\\n {{contact.emailAddress1}}\\r\\n \\r\\n {{contact.emailAddress1 | hideVal}}\\r\\n {{contact.emailAddress1}}\\r\\n \\r\\n \\r\\n
\\r\\n {{contact.emailAddress2}}\\r\\n \\r\\n {{contact.emailAddress2 | hideVal}}\\r\\n {{contact.emailAddress2}}\\r\\n \\r\\n
\\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n \\r\\n done\\r\\n clear\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtdGVtcGxhdGVzLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtbm90aWNlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({name: 'hideVal'})\r\nexport class HidePipe implements PipeTransform {\r\n transform(value: any, exponent: string): string {\r\n let val = '';\r\n for(let i = 0; i < value.length; i++){\r\n\r\n val += '*';\r\n }\r\n \r\n return val;\r\n }\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtbWVzc2FnZXMuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\r\\n

Send end of day

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n

\\r\\n Please note this can take up to 5 minutes to start sending. Summary email will be sent at the end of the sending, to any users with the \\\"EOD Summary Email\\\" flag set to true.\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {Observable} from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\r\nimport {PageEvent} from '@angular/material/paginator';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\n\r\n\r\n\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\n\r\n@Component({\r\n selector: 'app-office-clients',\r\n templateUrl: './office-clients.component.html',\r\n styleUrls: ['./office-clients.component.css'],\r\n providers:[ClientsContactsService]\r\n})\r\nexport class OfficeClientsComponent implements OnInit {\r\n sourceTypes: SourceTypes[];\r\n paymentTypes: PaymentTypes[];\r\n taxCodes: TaxCodes[];\r\n param: any;\r\n officeId: number;\r\n\r\n\r\n isActiveFilter:number = 1;\r\n isOutOfHoursFilter:number = 0;\r\n isTrialFilter:number = 0;\r\n isMasterFilter:number = 0;\r\n isVatFilter:number = 0;\r\n paymentFilter:number = 0;\r\n sourceFilter:number = 0;\r\ntaxFilter:number = 0;\r\n activeStates = [\r\n {value: 0, viewValue: 'Any'},\r\n {value: 1, viewValue: 'Active'},\r\n {value: 2, viewValue: 'Inactive'}\r\n ];\r\n hourStates = [\r\n {value: 0, viewValue: 'Any'},\r\n {value: 1, viewValue: 'Yes'},\r\n {value: 2, viewValue: 'No'}\r\n ];\r\n trialStates = [\r\n {value: 0, viewValue: 'Any'},\r\n {value: 1, viewValue: 'Yes'},\r\n {value: 2, viewValue: 'No'}\r\n ];\r\n masterStates = [\r\n {value: 0, viewValue: 'Any'},\r\n {value: 1, viewValue: 'Yes'},\r\n {value: 2, viewValue: 'No'}\r\n ];\r\nvatStates = [\r\n {value: 0, viewValue: 'Any'},\r\n {value: 1, viewValue: 'Yes'},\r\n {value: 2, viewValue: 'No'}\r\n ];\r\n paymentStates = [\r\n {value: 0, viewValue: 'Any'}\r\n ];\r\n sourceStates = [\r\n {value: 0, viewValue: 'Any'}\r\n ];\r\n taxStates= [\r\n {value: 0, viewValue: 'Any'}\r\n ];\r\n\r\n \r\n\r\n\r\n @Input()officeFilterId:Number = 0;\r\n listOfClients: Clients[];\r\n totalNoOfClients: any;\r\n constructor(public clientsContactsService: ClientsContactsService, private router: Router, private route: ActivatedRoute, private fb: FormBuilder, public snackBar: MatSnackBar, public dialog: MatDialog) { \r\n\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.route.params.forEach(params => {\r\n this.officeId = params[\"id\"];\r\n //call your function, like getUserInfo()\r\n this.getClients(this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter);\r\n})\r\n\r\n \r\n this.getSourceTypes();\r\n this.getTaxCodes();\r\n this.getPaymentTypes();\r\n }\r\n private getSourceTypes() {\r\n this.clientsContactsService.getSourceType(0, 0, 1).subscribe(resp => {\r\n this.sourceTypes = resp.sourceTypes;\r\n\r\n this.sourceTypes.forEach((type, i) =>{\r\n \r\n this.sourceStates.push({value: i+1, viewValue: type.name});\r\n \r\n });\r\n });\r\n }\r\n private getPaymentTypes() {\r\n this.clientsContactsService.getPaymentType(0, 0, 1).subscribe(resp => {\r\n this.paymentTypes = resp.paymentTypes;\r\n this.paymentTypes.forEach((type, i) =>{\r\n\r\n this.paymentStates.push({value: i+1, viewValue: type.name});\r\n\r\n });\r\n });\r\n\r\n }\r\n private getTaxCodes() {\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n this.taxCodes = resp.taxCodes;\r\n this.taxCodes.forEach((type, i) =>{\r\n \r\n this.taxStates.push({value: i+1, viewValue: type.code});\r\n \r\n });\r\n });\r\n }\r\n\r\n\r\n getClients(isActiveFilter: number, isTrialFilter: number, isMasterFilter:number, isOutOfHoursFilter: number, isVatFilter:number, paymentFilter:number, sourceFilter:number, taxFilter:number) {\r\n this.clientsContactsService.getClients(0, '0', 0, 0, isActiveFilter, isTrialFilter, isMasterFilter, isOutOfHoursFilter, isVatFilter, paymentFilter, sourceFilter, taxFilter, 1, 'ASC', 1).subscribe(resp => {\r\n \r\n this.totalNoOfClients = resp.clientDetails.totalCount;\r\n \r\n this.listOfClients = resp.clientDetails.clients;\r\n\r\n console.log(this.listOfClients);\r\n });\r\n }\r\n\r\n reset(){\r\n this.isActiveFilter = 0;\r\n this.isOutOfHoursFilter = 0;\r\n this.isTrialFilter = 0;\r\n this.isVatFilter = 0;\r\n this.paymentFilter = 0;\r\n this.sourceFilter = 0;\r\n this.taxFilter = 0;\r\n this.getClients(this.isActiveFilter, this.isTrialFilter, this.isMasterFilter, this.isOutOfHoursFilter, this.isVatFilter, this.paymentFilter, this.sourceFilter, this.taxFilter);\r\n\r\n }\r\n\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices } from '../../models/officeData';\r\nimport { NoticeData, NoticeDetails, NoticeDetail } from '../../models/noticeData';\r\n\r\nimport { AddOfficeDialogComponent } from '../../components/add-office-dialog/add-office-dialog.component';\r\n\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-offices',\r\n templateUrl: './offices.component.html',\r\n styleUrls: ['./offices.component.css'],\r\n providers: [OfficesUsersRolesService]\r\n})\r\nexport class OfficesComponent implements OnInit {\r\n listOfOffices: Offices[];\r\n noOfOffices: any;\r\n listOfNotice: NoticeDetail[] = [];\r\n\r\n isActiveFilter: number = 1;\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, public dialog: MatDialog, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.getOffices(this.isActiveFilter);\r\n\r\n\r\n }\r\n displayedColumns = [\r\n 'name',\r\n 'isOutOfHours',\r\n 'referenceNo',\r\n 'phoneNo'\r\n ];\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getOffices(isActive: number) {\r\n this.officesUsersRolesService.getOffices(0, '0', isActive, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.noOfOffices = resp.officeDetails.totalCount;\r\n this.listOfOffices = resp.officeDetails.offices;\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n reset() {\r\n this.isActiveFilter = 1;\r\n this.getOffices(this.isActiveFilter);\r\n }\r\n\r\n addOfficeDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddOfficeDialogComponent, {\r\n width: '1000px'\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.getOffices(this.isActiveFilter);\r\n });\r\n \r\n }\r\n\r\n}\r\n\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\nimport { ProductTypesData, ProductTypes, ProductType } from '../../models/productTypesData';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-add-invoice-product-dialog',\r\n templateUrl: './add-invoice-product-dialog.component.html',\r\n styleUrls: ['./add-invoice-product-dialog.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService, ClientsContactsService, UserSessionService]\r\n})\r\nexport class AddInvoiceProductDialogComponent implements OnInit {\r\n\r\n listOfTaxCodes: TaxCode[] = [];\r\n newProduct: Product;\r\n rForm: FormGroup;\r\n listOfProductTypes: ProductType[] = [];\r\n me: any;\r\n navRoleOffice: boolean = false;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n disabled: boolean = true;\r\n\r\n constructor(public clientsContactsService:ClientsContactsService, public dialogRef: MatDialogRef, public userSessionService: UserSessionService, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) { \r\n\r\n this.rForm = fb.group({\r\n 'productName': [null, Validators.required],\r\n 'productCode': [null, Validators.required],\r\n 'description': [null, Validators.required],\r\n 'unitCost': [null, Validators.required],\r\n 'includedMessages': [null, Validators.required],\r\n 'messageCost': [null, Validators.required],\r\n 'isGlobal': [false],\r\n 'taxId': [null, Validators.required],\r\n 'productTypeId': [null, Validators.required],\r\n 'officeId': [null],\r\n 'isDisplayInvoice': [null],\r\n });\r\n }\r\n\r\n\r\n checkValue(value: number) {\r\n const ctrl = this.rForm.get('messageCost');\r\n const ctrl1 = this.rForm.get('includedMessages');\r\n console.log(\"123\")\r\n if (value === 1) {\r\n ctrl.enable();\r\n ctrl1.enable();\r\n } else {\r\n ctrl.disable();\r\n ctrl1.disable();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.getMe();\r\n this.newProduct = new Product();\r\n\r\n this.newProduct.officeId = this.data.office.officeId;\r\n\r\n this.getTaxRates();\r\n this.getProductTypes();\r\n }\r\n\r\n getMe() {\r\n //console.log(\"header calling\");\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n //this.me = new Me();\r\n\r\n\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n const global = this.rForm.get('isGlobal');\r\n global.disable();\r\n if (arrayOfRoles.includes(3)) {\r\n this.navRoleOffice = true;\r\n global.disable();\r\n }\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleInvoicing = true;\r\n global.disable();\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n global.disable();\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n this.navRoleHeadOffice = true;\r\n \r\n global.enable();\r\n\r\n }\r\n }\r\n //this.userSessionService.updateUser(resp);\r\n });\r\n }\r\n\r\n getProductTypes(){\r\n \r\n this.invoicingService.getProductTypes(0, 0, 0).subscribe(resp => {\r\n \r\n this.listOfProductTypes = resp.productTypes;\r\n \r\n })\r\n \r\n }\r\n\r\n getTaxRates(){\r\n \r\n this.clientsContactsService.getTaxCode(0, 0, 0).subscribe(resp => {\r\n \r\n this.listOfTaxCodes = resp.taxCodes;\r\n \r\n })\r\n \r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n addInvoiceProduct(post){\r\n\r\nthis.invoicingService.addInvoiceProduct(this.newProduct).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Invoice product added\");\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n})\r\n \r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewChild, AfterViewInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\nimport * as moment from 'moment';\r\nimport { EmailValidator } from '@angular/forms';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { TemplatesService } from '../../services/templates.service';\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, InvoiceSettings } from '../../models/invoiceData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\n\r\n\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete, SubAccount } from '../../models/clientData';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { MeData, Me } from '../../models/meData';\r\n\r\nimport { ContactsComponent } from '../../components/contacts/contacts.component';\r\nimport { ClientRecurringProductsComponent } from '../../components/client-recurring-products/client-recurring-products.component';\r\n\r\nimport { ClientInvoicingComponent } from '../../components/client-invoicing/client-invoicing.component';\r\n\r\nimport { ClientMessagesComponent } from '../../components/client-messages/client-messages.component';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\n\r\nimport { TemplatesComponent } from '../../components/templates/templates.component';\r\nimport { ClientTemplatesComponent } from '../../components/client-templates/client-templates.component';\r\nimport { ClientMovementsComponent } from '../../components/client-movements/client-movements.component';\r\n\r\nimport { AddMovementDialogComponent } from '../../components/add-movement-dialog/add-movement-dialog.component';\r\nimport { ViewMovementDialogComponent } from '../../components/view-movement-dialog/view-movement-dialog.component';\r\nimport { AddInvoiceDialogComponent } from '../../components/add-invoice-dialog/add-invoice-dialog.component';\r\nimport { AddCreditNoteDialogComponent } from '../../components/add-credit-note-dialog/add-credit-note-dialog.component';\r\nimport { ClientSentInvoicesComponent } from '../../components/client-sent-invoices/client-sent-invoices.component';\r\n\r\nimport { AddContactDialogComponent } from '../../components/add-contact-dialog/add-contact-dialog.component';\r\nimport { AssignRecurringProductDialogComponent } from '../../components/assign-recurring-product-dialog/assign-recurring-product-dialog.component';\r\n\r\nimport { AddTemplateDialogComponent } from '../../components/add-template-dialog/add-template-dialog.component';\r\nimport { BillingData, Billings } from '../../models/billingData';\r\nimport { eodData } from '../../models/endOfDayClient';\r\n\r\n\r\n@Component({\r\n selector: 'app-client-detail',\r\n templateUrl: './client-detail.component.html',\r\n styleUrls: ['./client-detail.component.css'],\r\n providers: [ClientsContactsService, OfficesUsersRolesService, UserSessionService, TemplatesService, InvoicingService]\r\n})\r\nexport class ClientDetailComponent implements OnInit, AfterViewInit {\r\n eodData: eodData;\r\n listOfClients: ClientData;\r\n listOfOffices: Offices[];\r\n selectedClient: any;\r\n rForm: FormGroup;\r\n message: string;\r\n temp: any;\r\n selectedUser: MeData;\r\n userOffice: number = 0;\r\n selectedOffices: string;\r\n sourceTypes: SourceTypes[];\r\n paymentTypes: PaymentTypes[];\r\n taxCodes: TaxCodes[];\r\n formLoading: boolean;\r\n selectedTab: number;\r\n loadingContent: boolean = true;\r\n clientId: number;\r\n filteredClients: ClientAutocomplete[] = [];\r\n filteredContacts: ContactAutocomplete[] = [];\r\n selectedClientId: number = 0;\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n listOfBillingTypes: Billings[];\r\n me: any;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n navRoleClientAdmin: boolean = false;\r\n listOfTariffs: Products[] = [];\r\n listOfSubAccounts: SubAccount[] = [];\r\n tabId: number = 0;\r\n listOfQuarterMonths: any[];\r\n listOfMonths: any[];\r\n primaryOwnerId: number;\r\n officesLoaded: boolean = false;\r\n @ViewChild(ClientMessagesComponent) clientMessagesComponent: ClientMessagesComponent;\r\n @ViewChild(TemplatesComponent) templatesComponent: TemplatesComponent;\r\n @ViewChild(ClientTemplatesComponent) clientTemplatesComponent: ClientTemplatesComponent;\r\n @ViewChild(ClientMovementsComponent) clientMovementsComponent: ClientMovementsComponent;\r\n @ViewChild(ContactsComponent) contactsComponent: ContactsComponent | undefined;\r\n @ViewChild(ClientInvoicingComponent) clientInvoicingComponent: ClientInvoicingComponent;\r\n @ViewChild(ClientSentInvoicesComponent) clientSentComponent: ClientSentInvoicesComponent;\r\n @ViewChild(ClientRecurringProductsComponent) clientRecurringProductsComponent: ClientRecurringProductsComponent;\r\n\r\n get offices(): FormArray {\r\n return this.rForm.get('offices');\r\n }\r\n\r\n constructor(public dialog: MatDialog, public snackBar: MatSnackBar, public invoicingService: InvoicingService, public clientsContactsService: ClientsContactsService, public officesUsersRolesService: OfficesUsersRolesService, public userSessionService: UserSessionService, private router: Router, private route: ActivatedRoute, private fb: FormBuilder) {\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n\r\n\r\n this.rForm = fb.group({\r\n 'clientName': [null, Validators.required],\r\n 'clientAcronym': [{ value: '', disabled: true }, Validators.required],\r\n 'clientCode': ['', [Validators.required, Validators.minLength(4), Validators.maxLength(4)]],\r\n 'addressLine1': [null, Validators.required],\r\n 'addressLine2': [null],\r\n 'addressLine3': [null],\r\n 'townCity': [false, Validators.required],\r\n 'postCode': [false],\r\n 'country': [false],\r\n 'county': [false],\r\n 'isTrial': [false],\r\n 'trialClosedDate': [null],\r\n 'serviceStartDate': [null],\r\n 'billingDate': [{ value: null, disabled: false }, Validators.required],\r\n 'billingFrequencyId': [null],\r\n 'isActive': [false],\r\n 'clientId': [0, Validators.required],\r\n 'closeDate': [null],\r\n 'sourceTypeId': [null],\r\n 'internalDDI': [false],\r\n 'phoneNo': [false],\r\n 'faxNo': [false],\r\n 'emergencyNo': [null],\r\n 'privateUrl': [null],\r\n 'webUrl': [null],\r\n 'formUrl': [null],\r\n 'answerScript': [null],\r\n 'instruction': [null],\r\n 'hangUpScript': [null],\r\n 'notes': [null],\r\n 'mainContactId': [null],\r\n 'paymentTypeId': [null],\r\n 'taxId': [null],\r\n 'isOutOfHours': [false],\r\n 'masterAccountId': [null],\r\n 'tariffId': [null],\r\n 'isVatExempt': [false],\r\n offices: this.fb.array([]),\r\n 'clientAutocomplete': new FormControl(),\r\n 'contactAutocomplete': new FormControl(),\r\n 'isInvoiceScheduled': [null],\r\n 'invoiceToEmails': [null],\r\n 'financeContact': [null],\r\n 'monthInQuarter': [{ value: 1}],\r\n 'monthNumber': [{ value: 1}],\r\n });\r\n\r\n this.rForm.controls['clientAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientAutocomplete'].value);\r\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 1, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n });\r\n\r\n this.rForm.controls['contactAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['contactAutocomplete'].value);\r\n if (this.rForm.controls['contactAutocomplete'].value === '' || typeof this.rForm.controls['contactAutocomplete'].value != 'string') {\r\n return this.filteredContacts = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.rForm.controls['contactAutocomplete'].value, 0, this.clientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts = res.contacts\r\n })\r\n }\r\n });\r\n }\r\n\r\n \r\n\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n\r\n tabChanged = (tabChangeEvent: MatTabChangeEvent): void => {\r\n console.log('tabChangeEvent => ', tabChangeEvent);\r\n console.log('index => ', tabChangeEvent.index);\r\n this.selectedTab = tabChangeEvent.index;\r\n this.router.navigate(['/clients', this.selectedClient.clientId, 'tab', tabChangeEvent.index]);\r\n if (tabChangeEvent.index === 0) {\r\n console.log(\"Client\");\r\n this.getSourceTypes();\r\n this.getTaxCodes();\r\n this.getPaymentTypes();\r\n this.getBillingFrequency();\r\n this.getSubAccounts(this.clientId);\r\n this.getTariffs(this.officeId);\r\n }\r\n if (tabChangeEvent.index === 1) {\r\n console.log(\"Contacts\");\r\n this.contactsComponent.clientId = this.clientId;\r\n this.contactsComponent.getContacts(this.clientId, 1, 1);\r\n }\r\n if (tabChangeEvent.index === 2) {\r\n console.log(\"Messages\");\r\n this.clientMessagesComponent.clientId = this.clientId;\r\n this.clientMessagesComponent.getMessages(this.clientId, 0, 0, 1);\r\n this.clientMessagesComponent.getDeliveryTypes();\r\n }\r\n if (tabChangeEvent.index === 3) {\r\n console.log(\"Movements\");\r\n this.clientMovementsComponent.clientId = this.clientId;\r\n this.clientMovementsComponent.getMovements(this.clientId, 1, 1);\r\n }\r\n if (tabChangeEvent.index === 4) {\r\n console.log(\"Templates\");\r\n this.clientTemplatesComponent.clientId = this.clientId;\r\n this.clientTemplatesComponent.getTemplates(0, this.officeId, this.clientId, 2, 1);\r\n }\r\n if (tabChangeEvent.index === 5) {\r\n console.log(\"Invoices\");\r\n this.clientInvoicingComponent.clientId = this.clientId;\r\n this.clientInvoicingComponent.getInvoices(this.clientId, 0, 0, 1, 4, 'DESC', 1);\r\n this.clientInvoicingComponent.getInvoiceStatus();\r\n }\r\n if (tabChangeEvent.index === 6) {\r\n console.log(\"Recurring Products\");\r\n this.clientRecurringProductsComponent.clientId = this.clientId;\r\n this.clientRecurringProductsComponent.getRecurringProducts(this.clientId)\r\n }\r\n if (tabChangeEvent.index === 7) {\r\n console.log(\"Sent Invoices\");\r\n this.clientSentComponent.clientId = this.clientId;\r\n this.clientSentComponent.getSentInvoices(this.clientId, 1);\r\n }\r\n }\r\n\r\n setClient(client) {\r\n if (client.clientId > 0) {\r\n this.selectedClientId = client.clientId;\r\n } else {\r\n this.selectedClientId = null;\r\n }\r\n }\r\n setDates(billingId){\r\nconsole.log(billingId);\r\n if(billingId === 3){\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6}\r\n \r\n ]\r\n }else{\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6},\r\n {id: 7, value: 7}, {id: 8, value: 8}, {id: 9, value: 9},\r\n {id: 10, value: 10}, {id: 11, value: 11}, {id: 12, value: 12}\r\n \r\n ]\r\n }\r\n\r\n if(billingId === 2){\r\n if(this.selectedClient.monthInQuarter === null){\r\n this.selectedClient.monthInQuarter = 1;\r\n }\r\n }else if(billingId === 3 || billingId === 4){\r\n if(this.selectedClient.monthNumber === null){\r\n this.selectedClient.monthNumber = 1;\r\n }\r\n }\r\n\r\n }\r\n setMainContact(contact) {\r\n console.log(contact.contactId)\r\n this.selectedClient.mainContactId = contact.contactId;\r\n }\r\n\r\n billingFilter = (d: Date): boolean => {\r\n console.log(d);\r\n d = moment(d).toDate();\r\n const day = d.getDate();\r\n // Prevent Saturday and Sunday from being selected.\r\n return day !== 29 && day !== 30 && day !== 31;\r\n }\r\n\r\n getSubAccounts(clientId: number) {\r\n\r\n this.clientsContactsService.getClientSubAccounts(clientId).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfSubAccounts = resp.clients;\r\n console.log(\"sub len \" + this.listOfSubAccounts.length);\r\n }\r\n })\r\n }\r\n onSelectChange = ($event: any): void => {\r\n\r\n console.log($event);\r\n this.clientMessagesComponent.getMessages(this.clientId, 0, 0, 1);\r\n\r\n this.clientMessagesComponent.clientId = this.clientId;\r\n this.clientTemplatesComponent.clientId = this.clientId;\r\n this.clientTemplatesComponent.getTemplates(0, this.officeId, this.clientId, 0, 1);\r\n }\r\n ngAfterViewInit()\r\n {\r\n this.listOfQuarterMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3}\r\n ]\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6},\r\n {id: 7, value: 7}, {id: 8, value: 8}, {id: 9, value: 9},\r\n {id: 10, value: 10}, {id: 11, value: 11}, {id: 12, value: 12}\r\n \r\n ]\r\n this.listOfSubAccounts = [];\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n this.route.params.forEach(params => {\r\n this.clientId = parseInt(params[\"clientId\"]);\r\n //this.tabId = parseInt(params[\"tabId\"]);\r\n //call your function, like getUserInfo()\r\n this.getClients(this.clientId, '0', '0', 0, 0, 1);\r\n })\r\n //this.clientInvoicingComponent.clientId = this.clientId;\r\n this.tabId = +this.route.snapshot.paramMap.get('tabId');\r\n\r\n this.selectedTab = this.tabId;\r\n\r\n if (this.selectedTab === 0) {\r\n console.log(\"Client\");\r\n this.getSourceTypes();\r\n this.getTaxCodes();\r\n this.getPaymentTypes();\r\n this.getBillingFrequency();\r\n this.getSubAccounts(this.clientId);\r\n this.getTariffs(this.officeId);\r\n }\r\n if (this.selectedTab === 1) {\r\n console.log(\"Contacts\");\r\n if(this.contactsComponent)\r\n {\r\n this.contactsComponent.clientId = this.clientId;\r\n this.contactsComponent.getContacts(this.clientId, 1, 1);\r\n }\r\n }\r\n }\r\n ngOnInit() {\r\n this.listOfQuarterMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3}\r\n ]\r\n this.listOfMonths = [\r\n {id: 1, value: 1}, {id: 2, value: 2}, {id: 3, value: 3},\r\n {id: 4, value: 4}, {id: 5, value: 5}, {id: 6, value: 6},\r\n {id: 7, value: 7}, {id: 8, value: 8}, {id: 9, value: 9},\r\n {id: 10, value: 10}, {id: 11, value: 11}, {id: 12, value: 12}\r\n \r\n ]\r\n this.listOfSubAccounts = [];\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n this.route.params.forEach(params => {\r\n this.clientId = parseInt(params[\"clientId\"]);\r\n //this.tabId = parseInt(params[\"tabId\"]);\r\n //call your function, like getUserInfo()\r\n this.getClients(this.clientId, '0', '0', 0, 0, 1);\r\n })\r\n //this.clientInvoicingComponent.clientId = this.clientId;\r\n this.tabId = +this.route.snapshot.paramMap.get('tabId');\r\n\r\n this.selectedTab = this.tabId;\r\n\r\n if (this.selectedTab === 0) {\r\n console.log(\"Client\");\r\n this.getSourceTypes();\r\n this.getTaxCodes();\r\n this.getPaymentTypes();\r\n this.getBillingFrequency();\r\n this.getSubAccounts(this.clientId);\r\n this.getTariffs(this.officeId);\r\n }\r\n if (this.selectedTab === 1) {\r\n console.log(\"Contacts\");\r\n if(this.contactsComponent)\r\n {\r\n this.contactsComponent.clientId = this.clientId;\r\n this.contactsComponent.getContacts(this.clientId, 1, 1);\r\n }\r\n }\r\n if (this.selectedTab === 2) {\r\n console.log(\"Messages\");\r\n this.clientMessagesComponent.clientId = this.clientId;\r\n this.clientMessagesComponent.getMessages(this.clientId, 0, 0, 1);\r\n this.clientMessagesComponent.getDeliveryTypes();\r\n }\r\n if (this.selectedTab === 3) {\r\n console.log(\"Movements\");\r\n this.clientMovementsComponent.clientId = this.clientId;\r\n this.clientMovementsComponent.getMovements(this.clientId, 1, 1);\r\n }\r\n if (this.selectedTab === 4) {\r\n console.log(\"Templates\");\r\n this.clientTemplatesComponent.clientId = this.clientId;\r\n this.clientTemplatesComponent.getTemplates(0, 0, this.clientId, 0, 1);\r\n }\r\n if (this.selectedTab === 5) {\r\n console.log(\"Invoices\");\r\n this.clientInvoicingComponent.clientId = this.clientId;\r\n this.clientInvoicingComponent.getInvoices(this.clientId, 0, 0, 1, 1, 'DESC', 1);\r\n this.clientInvoicingComponent.getInvoiceStatus();\r\n }\r\n if (this.selectedTab === 6) {\r\n console.log(\"Recurring Products\");\r\n this.clientRecurringProductsComponent.clientId = this.clientId;\r\n this.clientRecurringProductsComponent.getRecurringProducts(this.clientId)\r\n }\r\n if (this.selectedTab === 7) {\r\n console.log(\"Sent Invoices\");\r\n this.clientSentComponent.clientId = this.clientId;\r\n this.clientSentComponent.getSentInvoices(this.clientId, 1);\r\n }\r\n if (this.clientMovementsComponent) {\r\n this.clientMovementsComponent.clientId = this.clientId;\r\n this.clientSentComponent.clientId = this.clientId;\r\n }\r\n this.selectedClient = new Client();\r\n\r\n\r\n this.getMe();\r\n\r\n }\r\n\r\n addOffice(selected, id, disabled): void {\r\n\r\n this.offices.push(this.buildOffices(selected, id, disabled));\r\n }\r\n\r\n buildOffices(selected, id, disabled): FormGroup {\r\n return this.fb.group({\r\n officeId: id,\r\n locked: disabled,\r\n isSelected: new FormControl({ value: selected, disabled: disabled })\r\n })\r\n }\r\n private getMe() {\r\n this.getOffices();\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n this.selectedUser = resp;\r\n this.userOffice = resp.user[0].officeId;\r\n \r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleClientAdmin = true;\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(4)) {\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n\r\n this.navRoleHeadOffice = true;\r\n }\r\n });\r\n }\r\n\r\n updateClientAcronym($event) {\r\n\r\n console.log($event);\r\n\r\n //let tempAcronym = $event.split(\"-\", 2); \r\n\r\n let temp123 = this.rForm.get(\"clientAcronym\").value;\r\n\r\n let tempCode = temp123.split(\"-\", 3);;\r\n\r\n this.rForm.get(\"clientAcronym\").setValue($event + '-' + tempCode[1] + '-' + tempCode[2]);\r\n\r\n }\r\n\r\n updateClientAcronymDate($event) {\r\n\r\n let newDate = moment($event).format(\"DDMM\");\r\n\r\n let temp123 = this.rForm.get(\"clientAcronym\").value;\r\n\r\n let tempCode = temp123.split(\"-\", 3);\r\n\r\n this.rForm.get(\"clientAcronym\").setValue(tempCode[0] + '-' + tempCode[1] + '-' + newDate);\r\n\r\n }\r\n\r\n eod() {\r\n this.eodData = new eodData();\r\n this.eodData.clientId = this.selectedClient.clientId;\r\n this.eodData.fromCreatedDate = (moment().toDate()).toDateString();\r\n this.eodData.toCreatedDate = (moment().toDate()).toDateString();\r\n\r\n this.clientsContactsService.endOfDelivery(this.eodData).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n \r\n } else {\r\n this.openSnackBar(\"EOD Sent for Client\");\r\n }\r\n });\r\n }\r\n\r\n private getSourceTypes() {\r\n this.clientsContactsService.getSourceType(0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.sourceTypes = resp.sourceTypes;\r\n }\r\n });\r\n }\r\n private getPaymentTypes() {\r\n this.clientsContactsService.getPaymentType(0, 0, 1).subscribe(resp => {\r\n \r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.paymentTypes = resp.paymentTypes;\r\n }\r\n });\r\n }\r\n private getTaxCodes() {\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n \r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.taxCodes = resp.taxCodes;\r\n }\r\n });\r\n }\r\n private getBillingFrequency() {\r\n this.clientsContactsService.getBillingFrequency().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfBillingTypes = resp.deliveryTypes;\r\n }\r\n\r\n \r\n });\r\n }\r\n private getTariffs(officeId: number) {\r\n\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, 1, 0, 0, 1, 0, 1, 'ASC', 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfTariffs = resp.invoiceProducts.products;\r\n\r\n }\r\n \r\n })\r\n\r\n }\r\n\r\n officeArray: number[] = new Array();\r\n\r\n private getClients(id: number, clientName: string, clientAcroynm: string, officeId: number, isActive: number, officePageNo: number) {\r\n this.clientsContactsService.getClients(id, clientName, clientAcroynm, officeId, isActive, 0, 0, 0, 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n this.listOfSubAccounts = [];\r\n\r\n this.getSubAccounts(this.clientId);\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n this.listOfClients = new ClientData();\r\n this.listOfClients = resp;\r\n this.rForm.controls['clientId'].setValue(resp.clientDetails.clients[0].clientId);\r\n if (moment(resp.clientDetails.clients[0].closeDate).isValid()) {\r\n this.rForm.controls['closeDate'].setValue(moment(resp.clientDetails.clients[0].closeDate).toDate());\r\n } else {\r\n this.rForm.controls['closeDate'].setValue(null);\r\n }\r\n if (moment(resp.clientDetails.clients[0].trialClosedDate).isValid()) {\r\n this.rForm.controls['trialClosedDate'].setValue(moment(resp.clientDetails.clients[0].trialClosedDate).toDate());\r\n } else {\r\n this.rForm.controls['trialClosedDate'].setValue(null);\r\n }\r\n if (moment(resp.clientDetails.clients[0].serviceStartDate).isValid()) {\r\n this.rForm.controls['serviceStartDate'].setValue(moment(resp.clientDetails.clients[0].serviceStartDate).toDate());\r\n } else {\r\n this.rForm.controls['serviceStartDate'].setValue(null);\r\n }\r\n if (moment(resp.clientDetails.clients[0].billingDate).isValid()) {\r\n this.rForm.controls['billingDate'].setValue(moment(resp.clientDetails.clients[0].billingDate).toDate());\r\n } else {\r\n this.rForm.controls['billingDate'].setValue(null);\r\n }\r\n \r\n \r\n this.selectedClientId = resp.clientDetails.clients[0].masterAccountId;\r\n \r\n let tempClient = new ClientAutocomplete();\r\n \r\n tempClient.clientName = resp.clientDetails.clients[0].masterAccountName;\r\n tempClient.clientId = resp.clientDetails.clients[0].masterAccountId;\r\n \r\n this.rForm.controls['clientAutocomplete'].setValue(tempClient);\r\n \r\n let tempContact = new ContactAutocomplete();\r\n \r\n tempContact.contactName = resp.clientDetails.clients[0].mainContactName;\r\n tempContact.contactId = resp.clientDetails.clients[0].mainContactId;\r\n \r\n this.rForm.controls['clientAutocomplete'].setValue(tempClient);\r\n this.rForm.controls['contactAutocomplete'].setValue(tempContact);\r\n \r\n resp.clientDetails.clients.forEach((clients, i) => {\r\n \r\n this.selectedClient = clients;\r\n this.selectedClient.serviceStartDate = moment(clients.serviceStartDate).toDate();\r\n this.selectedClient.trialClosedDate = moment(clients.trialClosedDate).toDate();\r\n this.selectedClient.billingDate = moment(clients.billingDate).toDate();\r\n \r\n this.selectedClient.closeDate = moment(clients.closeDate).toDate();\r\n this.selectedClient.serviceStartDate = moment(clients.serviceStartDate).toDate();\r\n let tempCode = clients.clientAcronym.split(\"-\", 3);\r\n this.rForm.get(\"clientCode\").setValue(tempCode[0]);\r\n this.selectedClient.clientCode = tempCode[0];\r\n \r\n });\r\n this.loadingContent = false;\r\n resp.clientDetails.clients[0].offices.forEach((office) => {\r\n \r\n if(office.isPrimaryOwner){\r\n this.primaryOwnerId = office.officeId;\r\n }\r\n this.officeArray.push(office.officeId);\r\n });\r\n \r\n console.log(this.officeArray);\r\n \r\n }\r\n });\r\n\r\n }\r\n\r\n public getOffices() {\r\n \r\n this.officesUsersRolesService.getOffices(0, '0', 1, 1).subscribe(resp => {\r\n console.log(\"called now---------123\")\r\n\r\n\r\n setTimeout(()=>{ //<<<--- using ()=> syntax\r\n \r\n\r\n\r\n resp.officeDetails.offices.map((office) => {\r\n\r\n console.log(this.officeArray.includes(office.officeId));\r\n\r\n if (office.officeId == this.userOffice) {\r\n // office.isSelected = true;\r\n console.log(\"called now------------\")\r\n this.addOffice(true, office.officeId, true);\r\n\r\n } else if (this.officeArray.includes(office.officeId)) {\r\n //office.isSelected = false;\r\n this.addOffice(true, office.officeId, false);\r\n } else {\r\n\r\n this.addOffice(false, office.officeId, false);\r\n }\r\n //return office;\r\n });\r\n this.officesLoaded = true;\r\n }, 800);\r\n \r\n this.listOfOffices = resp.officeDetails.offices;\r\n\r\n // return this.listOfOffices;\r\n\r\n }\r\n );\r\n\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n updateClient(post) {\r\n this.formLoading = true;\r\n\r\n this.selectedOffices = '';\r\n post.offices.forEach((office, i) => {\r\n if (!office.hasOwnProperty(\"isSelected\")) {\r\n this.selectedOffices += office.officeId + \",\";\r\n } else {\r\n if (office.isSelected) {\r\n this.selectedOffices += office.officeId + \",\";\r\n }\r\n }\r\n });\r\n\r\n if (moment(post.closeDate).isValid()) {\r\n this.selectedClient.closeDate = post.closeDate;\r\n\r\n }\r\n if (moment(post.trialClosedDate).isValid()) {\r\n this.selectedClient.trialClosedDate = post.trialClosedDate;\r\n }\r\n if (moment(post.billingDate).isValid()) {\r\n this.selectedClient.billingDate = post.billingDate;\r\n }\r\n\r\n if (moment(post.serviceStartDate).isValid()) {\r\n this.selectedClient.serviceStartDate = post.serviceStartDate;\r\n }\r\n this.selectedOffices = this.selectedOffices.slice(0, -1);\r\n if (this.selectedClientId > 0) {\r\n this.selectedClient.masterAccountId = this.selectedClientId;\r\n } else {\r\n this.selectedClient.masterAccountId = null;\r\n }\r\n\r\n this.clientsContactsService.updateClient(this.selectedClient.clientId, this.selectedOffices, this.selectedClient).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Client updated\");\r\n }\r\n\r\n this.formLoading = false;\r\n });\r\n }\r\n\r\n addTemplateDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddTemplateDialogComponent, {\r\n width: '1000px',\r\n data: { officeId: this.officeId, clientId: this.clientId, isGlobal: false, clientName: this.selectedClient.clientName }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.selectedTab = 4;\r\n console.log(result);\r\n this.clientTemplatesComponent.getTemplates(0, 0, this.clientId, 2, 1);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n addMovementDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddMovementDialogComponent, {\r\n width: '1000px',\r\n data: { clientId: this.clientId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.clientMovementsComponent.getMovements(this.clientId, 1, 1);\r\n this.selectedTab = 3;\r\n\r\n //console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n }\r\n\r\n addContactDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddContactDialogComponent, {\r\n width: '1000px',\r\n data: { clientId: this.clientId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.contactsComponent.getContacts(this.clientId, 1, 1);\r\n this.selectedTab = 1;\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n addInvoiceDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddInvoiceDialogComponent, {\r\n width: '400px',\r\n data: { clientId: this.clientId, officeId: this.officeId, invoiceTypeId: 1 }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.contactsComponent.getContacts(this.clientId, 1);\r\n this.selectedTab = 5;\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n addCreditDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddCreditNoteDialogComponent, {\r\n width: '500px',\r\n data: { clientId: this.clientId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.contactsComponent.getContacts(this.clientId, 1);\r\n this.selectedTab = 5;\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n }\r\n\r\n assignRecurringProductDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AssignRecurringProductDialogComponent, {\r\n width: '50%',\r\n data: { clientId: this.clientId, officeId: this.officeId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.contactsComponent.getContacts(this.clientId, 1);\r\n this.selectedTab = 6;\r\n this.clientRecurringProductsComponent.getRecurringProducts(this.clientId)\r\n });\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, LOCALE_ID } from '@angular/core';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\nimport { HttpClient, HttpHeaders, HttpClientModule } from '@angular/common/http';\r\n\r\nimport { MomentModule } from 'ngx-moment';\r\nimport { ChartsModule } from 'ng2-charts';\r\nimport { UpdateService } from './services/update.service';\r\n\r\nimport 'moment/locale/en-gb';\r\n\r\n\r\nimport {BrowserAnimationsModule} from '@angular/platform-browser/animations';\r\nimport { MaterialModule} from './material-module';\r\nimport { FlexLayoutModule } from '@angular/flex-layout';\r\n//import 'hammerjs';\r\n\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { LoginService } from './services/login.service';\r\nimport { JournalsService } from './services/journals.service';\r\nimport { UserSessionService } from './services/user-session.service';\r\n\r\nimport { AuthInterceptor } from './auth.interceptor';\r\nimport { AuthGuard } from './auth.guard.service';\r\n\r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { MessagesComponent } from './components/messages/messages.component';\r\nimport { ClientsComponent } from './components/clients/clients.component';\r\n\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { MyAccountComponent } from './components/my-account/my-account.component';\r\nimport { InvoicingComponent } from './components/invoicing/invoicing.component';\r\nimport { OfficesComponent } from './components/offices/offices.component';\r\nimport { AddOfficeDialogComponent } from './components/add-office-dialog/add-office-dialog.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { OfficeDetailComponent } from './components/office-detail/office-detail.component';\r\nimport { UserDetailComponent } from './components/user-detail/user-detail.component';\r\nimport { ClientDetailComponent } from './components/client-detail/client-detail.component';\r\nimport { ReportingComponent } from './components/reporting/reporting.component';\r\nimport { OutboxComponent } from './components/outbox/outbox.component';\r\nimport { ContactsComponent } from './components/contacts/contacts.component';\r\nimport { ContactsDetailComponent } from './components/contacts-detail/contacts-detail.component';\r\nimport { ClientMovementsComponent } from './components/client-movements/client-movements.component';\r\nimport { OfficeClientsComponent } from './components/office-clients/office-clients.component';\r\nimport { AddClientDialogComponent } from './components/add-client-dialog/add-client-dialog.component';\r\nimport { AddUserDialogComponent } from './components/add-user-dialog/add-user-dialog.component';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { ViewMessageDialogComponent } from './components/view-message-dialog/view-message-dialog.component';\r\nimport { TemplatesComponent } from './components/templates/templates.component';\r\nimport { AddTemplateDialogComponent } from './components/add-template-dialog/add-template-dialog.component';\r\nimport { ClientMessagesComponent } from './components/client-messages/client-messages.component';\r\nimport { MessageStatsComponent } from './components/message-stats/message-stats.component';\r\nimport { JournalsComponent } from './components/journals/journals.component';\r\nimport { ViewTemplateDialogComponent } from './components/view-template-dialog/view-template-dialog.component';\r\nimport { AddMovementDialogComponent } from './components/add-movement-dialog/add-movement-dialog.component';\r\nimport { ViewMovementDialogComponent } from './components/view-movement-dialog/view-movement-dialog.component';\r\nimport { AddContactDialogComponent } from './components/add-contact-dialog/add-contact-dialog.component';\r\nimport { ResetComponent } from './components/reset/reset.component';\r\n\r\nimport { HidePipe } from './pipes/hide.pipe';\r\nimport { AddNoticeDialogComponent } from './components/add-notice-dialog/add-notice-dialog.component';\r\nimport { ViewNoticeDialogComponent } from './components/view-notice-dialog/view-notice-dialog.component';\r\nimport { NoticesComponent } from './components/notices/notices.component';\r\nimport { PrintMovementComponent } from './components/print-movement/print-movement.component';\r\nimport { InvoicingProductsComponent } from './components/invoicing-products/invoicing-products.component';\r\nimport { InvoicingDetailComponent } from './components/invoicing-detail/invoicing-detail.component';\r\nimport { ViewLineItemDialogComponent } from './components/view-line-item-dialog/view-line-item-dialog.component';\r\nimport { AddLineItemDialogComponent } from './components/add-line-item-dialog/add-line-item-dialog.component';\r\nimport { AddInvoiceProductDialogComponent } from './components/add-invoice-product-dialog/add-invoice-product-dialog.component';\r\nimport { DeleteLineItemDialogComponent } from './components/delete-line-item-dialog/delete-line-item-dialog.component';\r\nimport { InvoiceSettingsComponent } from './components/invoice-settings/invoice-settings.component';\r\nimport { ClientRecurringProductsComponent } from './components/client-recurring-products/client-recurring-products.component';\r\nimport { ClientInvoicingComponent } from './components/client-invoicing/client-invoicing.component';\r\nimport { AddInvoiceDialogComponent } from './components/add-invoice-dialog/add-invoice-dialog.component';\r\nimport { ViewInvoiceProductDialogComponent } from './components/view-invoice-product-dialog/view-invoice-product-dialog.component';\r\nimport { VoidInvoiceDialogComponent } from './components/void-invoice-dialog/void-invoice-dialog.component';\r\nimport { AssignRecurringProductDialogComponent } from './components/assign-recurring-product-dialog/assign-recurring-product-dialog.component';\r\nimport { ConfirmPatchDialogComponent } from './components/confirm-patch-dialog/confirm-patch-dialog.component';\r\nimport { AddCreditNoteDialogComponent } from './components/add-credit-note-dialog/add-credit-note-dialog.component';\r\nimport { FinaliseInvoiceDialogComponent } from './components/finalise-invoice-dialog/finalise-invoice-dialog.component';\r\nimport { EmailInvoiceDialogComponent } from './components/email-invoice-dialog/email-invoice-dialog.component';\r\nimport { ClientSentInvoicesComponent } from './components/client-sent-invoices/client-sent-invoices.component';\r\nimport { CompleteInvoiceDialogComponent } from './components/complete-invoice-dialog/complete-invoice-dialog.component';\r\nimport { ChangeInvoicePaymentTypeDialogComponent } from './components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component';\r\nimport { ChangeInvoiceTariffDialogComponent } from './components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component';\r\nimport { ChangeInvoiceReferenceDialogComponent } from './components/change-invoice-reference-dialog/change-invoice-reference-dialog.component';\r\nimport { ChangeInvoiceDateDialogComponent } from './components/change-invoice-date-dialog/change-invoice-date-dialog.component';\r\nimport { ViewContactsDialogComponent } from './components/view-contacts-dialog/view-contacts-dialog.component';\r\nimport { PrintInvoiceComponent } from './components/print-invoice/print-invoice.component';\r\nimport { EndOfDayDialogComponent } from './components/end-of-day-dialog/end-of-day-dialog.component'; \r\n\r\nimport { CustomReuseStrategy } from './reuse-strategy';\r\nimport { ServiceWorkerModule, SwUpdate, SwPush } from '@angular/service-worker';\r\nimport { environment } from '../environments/environment';\r\nimport { EmailMessageReportDialogComponent } from './components/email-message-report-dialog/email-message-report-dialog.component';\r\nimport { RaiseCreditNoteDialogComponent } from './components/raise-credit-note-dialog/raise-credit-note-dialog.component';\r\nimport { ClientTemplatesComponent } from './components/client-templates/client-templates.component'; \r\n\r\nimport { MAT_DATE_LOCALE } from '@angular/material/core';\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n MessagesComponent,\r\n ClientsComponent,\r\n HeaderComponent,\r\n PageNotFoundComponent,\r\n HomeComponent,\r\n MyAccountComponent,\r\n InvoicingComponent,\r\n OfficesComponent,\r\n UsersComponent,\r\n OfficeDetailComponent,\r\n AddOfficeDialogComponent,\r\n UserDetailComponent,\r\n ClientDetailComponent,\r\n ReportingComponent,\r\n OutboxComponent,\r\n ContactsComponent,\r\n ContactsDetailComponent,\r\n ClientMovementsComponent,\r\n OfficeClientsComponent,\r\n AddClientDialogComponent,\r\n AddUserDialogComponent,\r\n AdminComponent,\r\n ViewMessageDialogComponent,\r\n TemplatesComponent,\r\n AddTemplateDialogComponent,\r\n ClientMessagesComponent,\r\n MessageStatsComponent,\r\n JournalsComponent,\r\n ViewTemplateDialogComponent,\r\n AddMovementDialogComponent,\r\n ViewMovementDialogComponent,\r\n AddContactDialogComponent,\r\n ResetComponent,\r\n HidePipe,\r\n AddNoticeDialogComponent,\r\n ViewNoticeDialogComponent,\r\n NoticesComponent,\r\n PrintMovementComponent,\r\n InvoicingProductsComponent,\r\n InvoicingDetailComponent,\r\n ViewLineItemDialogComponent,\r\n AddLineItemDialogComponent,\r\n AddInvoiceProductDialogComponent,\r\n DeleteLineItemDialogComponent,\r\n InvoiceSettingsComponent,\r\n ClientRecurringProductsComponent,\r\n ClientInvoicingComponent,\r\n AddInvoiceDialogComponent,\r\n ViewInvoiceProductDialogComponent,\r\n VoidInvoiceDialogComponent,\r\n AssignRecurringProductDialogComponent,\r\n ConfirmPatchDialogComponent,\r\n AddCreditNoteDialogComponent,\r\n FinaliseInvoiceDialogComponent,\r\n EmailInvoiceDialogComponent,\r\n ClientSentInvoicesComponent,\r\n CompleteInvoiceDialogComponent,\r\n ChangeInvoicePaymentTypeDialogComponent,\r\n ChangeInvoiceTariffDialogComponent,\r\n ChangeInvoiceReferenceDialogComponent,\r\n ChangeInvoiceDateDialogComponent,\r\n ViewContactsDialogComponent,\r\n PrintInvoiceComponent,\r\n EndOfDayDialogComponent,\r\n EmailMessageReportDialogComponent,\r\n RaiseCreditNoteDialogComponent,\r\n ClientTemplatesComponent,\r\n \r\n ],\r\n imports: [\r\n BrowserModule,\r\n FormsModule,\r\n MaterialModule,\r\n ReactiveFormsModule,\r\n HttpClientModule,\r\n AppRoutingModule,\r\n BrowserAnimationsModule,\r\n FlexLayoutModule,\r\n MomentModule,\r\n ChartsModule,\r\n MatMomentDateModule,\r\n ServiceWorkerModule.register('/ngsw-worker.js', { enabled: environment.production })\r\n ],\r\n entryComponents: [AddOfficeDialogComponent,\r\n AddUserDialogComponent, \r\n AddClientDialogComponent, \r\n ViewMessageDialogComponent, \r\n AddTemplateDialogComponent, \r\n ViewTemplateDialogComponent,\r\n AddMovementDialogComponent,\r\n ViewMovementDialogComponent,\r\n AddContactDialogComponent,\r\n AddNoticeDialogComponent,\r\n ViewNoticeDialogComponent,\r\n ViewLineItemDialogComponent,\r\n DeleteLineItemDialogComponent, \r\n AddInvoiceDialogComponent, \r\n AddLineItemDialogComponent,\r\n ViewInvoiceProductDialogComponent,\r\n VoidInvoiceDialogComponent,\r\n AddInvoiceProductDialogComponent, \r\n AssignRecurringProductDialogComponent,\r\n ConfirmPatchDialogComponent, \r\n AddCreditNoteDialogComponent,\r\n FinaliseInvoiceDialogComponent,\r\n EmailInvoiceDialogComponent,\r\n CompleteInvoiceDialogComponent,\r\n ChangeInvoiceReferenceDialogComponent,\r\n ChangeInvoiceDateDialogComponent,\r\n ChangeInvoicePaymentTypeDialogComponent,\r\n ChangeInvoiceTariffDialogComponent,\r\n ViewContactsDialogComponent,\r\n EmailMessageReportDialogComponent,\r\n EndOfDayDialogComponent,\r\n RaiseCreditNoteDialogComponent],\r\n providers: [LoginService, AuthGuard, JournalsService, UserSessionService,\r\n { provide: MAT_DATE_LOCALE, useValue: 'en-gb' },\r\n {provide: LOCALE_ID, useValue: 'en-gb'},\r\n { provide: RouteReuseStrategy, useClass: CustomReuseStrategy },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true,\r\n }],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {\r\n\r\n constructor(){\r\n //dateAdapter.setLocale('en-gb');\r\n\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n","export default \"\\r\\n
\\r\\n

Client Movements

\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n

{{client.clientName}}

\\r\\n
Start DateEnd DateNotesForward ToOut of OfficeActive
{{movement.startDate | amDateFormat:'LL'}}{{movement.endDate | amDateFormat:'LL'}}{{movement.notes}}{{movement.forwardTo}}{{movement.outOfOffice}}\\r\\n done\\r\\n clear\\r\\n
\\r\\n Created: {{movement.createdDate | amDateFormat:'LL'}} by {{movement.createdBy}}\\r\\n 0\\\">Last updated: {{movement.lastUpdatedDate | amDateFormat:'LL'}} by \\r\\n {{movement.lastUpdatedBy}}\\r\\n
\\r\\n
\\r\\n\";","export default \"
\\r\\n\\r\\n \\r\\n

Add Client

\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Company Details\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 4 Characters required, no numbers. Full Client reference will be automatically generated using the\\r\\n office reference and billing date.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n If a master account is assigned then the billing date will be automatically inherited.\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Address\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Offices\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{office.name}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Messaging Info\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Account Details Info\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Trial\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ source.name }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Out Of Hours\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Contact Details Info\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Invoicing Details\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n If master account is assigned then this client will inherit their billing date.\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n Vat Exempt\\r\\n
\\r\\n
\\r\\n Invoice Scheduled\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ payment.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ billing.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ month.value }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ month.value }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ taxCode.code }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ tariff.productCode }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n
\";","import { Component, OnInit } from '@angular/core';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { MovementsService } from '../../services/movements.service';\r\n\r\nimport { MovementData, MovementDetails, Movements, Movement } from '../../models/movementData';\r\n\r\n@Component({\r\n selector: 'app-print-movement',\r\n templateUrl: './print-movement.component.html',\r\n styleUrls: ['./print-movement.component.css'],\r\n providers: [MovementsService]\r\n})\r\nexport class PrintMovementComponent implements OnInit {\r\n listOfMovements: Movements[];\r\n isActiveFilter: number = 1;\r\n sessionCheck: any;\r\n active: number = 0;\r\n from: string = '0';\r\n to: string = '0';\r\n client: number = 0;\r\n\r\n constructor(public movementsService:MovementsService, private router: Router, private route: ActivatedRoute,public snackBar: MatSnackBar) { \r\n\r\n this.sessionCheck = setTimeout(() => {\r\n \r\n window.print();\r\n\r\n }, 500 * 10 * 1);\r\n }\r\n\r\n ngOnInit() {\r\n \r\n \r\n\r\n this.route.queryParams.subscribe((params: Params) => {\r\n this.active = params[\"active\"] || 0;\r\n this.from = params[\"from\"] || '0';\r\n this.to = params[\"to\"] || '0';\r\n this.client = params[\"client\"] || 0;\r\n });\r\n\r\n this.getClientMovements(this.client, this.active, this.from, this.to);\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n\r\n });\r\n }\r\n getClientMovements(clientId: number, isActiveFilter: number, startDate: string, endDate: string){\r\n this.movementsService.clientMovements(clientId, isActiveFilter , startDate, endDate).subscribe(resp => {\r\n //this.listOfMovements= new MovementDetails();\r\n this.listOfMovements= resp.clients;\r\n \r\n });\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJyZXBvcnRpbmcuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJvdXRib3guY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\n

Raise credit note against this invoice

\\n
\\n\\n\\n
\\n\\n \\n\\n \\n Are you sure?\\n\\n\\n \\n \\n\\n\\n
\\n\\n
\\n\\n \\n \\n\\n\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjaGFuZ2UtaW52b2ljZS1kYXRlLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {Observable} from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {MatDialog, MatDialogRef} from '@angular/material/dialog';\r\n\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\n\r\nimport { MovementsService } from '../../services/movements.service';\r\nimport { MovementData, MovementDetails, Movements, Movement } from '../../models/movementData';\r\nimport { ViewMovementDialogComponent } from '../../components/view-movement-dialog/view-movement-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-client-movements',\r\n templateUrl: './client-movements.component.html',\r\n styleUrls: ['./client-movements.component.css'],\r\n providers:[MovementsService]\r\n})\r\nexport class ClientMovementsComponent implements OnInit {\r\n listOfMovements: Movements[];\r\n noOfMovements: number;\r\n clientId: number = 0;\r\n\r\n isActiveFilter:number = 1;\r\n activeStates = [\r\n {value: 0, viewValue: 'All'},\r\n {value: 1, viewValue: 'Active'},\r\n {value: 2, viewValue: 'Inactive'}\r\n ];\r\n \r\n\r\n constructor(public movementsService:MovementsService, public snackBar: MatSnackBar, public dialog: MatDialog,) { }\r\n\r\n ngOnInit() {\r\n //this.getMovements(this.clientId, this.isActiveFilter, 1);\r\n }\r\n\r\n reset(){\r\n this.isActiveFilter = 1;\r\n this.getMovements(this.clientId, this.isActiveFilter, 1);\r\n }\r\n\r\n setPage(event) {\r\n console.log(event);\r\n this.getMovements(this.clientId, this.isActiveFilter, event.pageIndex + 1);\r\n\r\n }\r\n openSnackBarError(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n\r\n });\r\n }\r\n getMovements(clientId: number, isActiveFilter: number, pageNo: number){\r\n this.movementsService.getMovements(0, clientId ,isActiveFilter , 0, 0, 1, 'DESC', pageNo).subscribe(resp => {\r\n console.log(\"movement called\")\r\n //this.listOfMovements= new MovementDetails();\r\n this.listOfMovements= resp.movementDetails.movements;\r\n this.noOfMovements = resp.movementDetails.totalCount;\r\n });\r\n\r\n }\r\n viewMovementDialog(movement): void {\r\n \r\n let dialogRef = this.dialog.open(ViewMovementDialogComponent, {\r\n width: '1000px',\r\n data: { movementData: movement }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.getMovements(this.clientId, this.isActiveFilter, 1);\r\n });\r\n \r\n \r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettings, InvoiceSetting } from '../../models/invoiceData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\n\r\nimport { AddLineItemDialogComponent } from '../../components/add-line-item-dialog/add-line-item-dialog.component';\r\nimport { ViewLineItemDialogComponent } from '../../components/view-line-item-dialog/view-line-item-dialog.component';\r\nimport { DeleteLineItemDialogComponent } from '../../components/delete-line-item-dialog/delete-line-item-dialog.component';\r\nimport { VoidInvoiceDialogComponent } from '../../components/void-invoice-dialog/void-invoice-dialog.component';\r\nimport { FinaliseInvoiceDialogComponent } from '../../components/finalise-invoice-dialog/finalise-invoice-dialog.component';\r\nimport { CompleteInvoiceDialogComponent } from '../../components/complete-invoice-dialog/complete-invoice-dialog.component';\r\nimport { EmailInvoiceDialogComponent } from '../../components/email-invoice-dialog/email-invoice-dialog.component';\r\nimport { ChangeInvoiceReferenceDialogComponent } from '../../components/change-invoice-reference-dialog/change-invoice-reference-dialog.component';\r\nimport { ChangeInvoiceDateDialogComponent } from '../../components/change-invoice-date-dialog/change-invoice-date-dialog.component';\r\nimport { ChangeInvoicePaymentTypeDialogComponent } from '../../components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component';\r\nimport { ChangeInvoiceTariffDialogComponent } from '../../components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component';\r\nimport { RaiseCreditNoteDialogComponent } from '../../components/raise-credit-note-dialog/raise-credit-note-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-invoicing-detail',\r\n templateUrl: './invoicing-detail.component.html',\r\n styleUrls: ['./invoicing-detail.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [ClientsContactsService, OfficesUsersRolesService, UserSessionService, InvoicingService]\r\n})\r\nexport class InvoicingDetailComponent implements OnInit {\r\n invoiceId: number = 0;\r\n selectedInvoice: Invoice;\r\n lineItems: LineItems[] = [];\r\n invoiceSettings: InvoiceSettings;\r\n officeId: number = 0;\r\n officeIdSubject: Observable;\r\n clientId: number = 0;\r\n clientDetails: Client;\r\n officeDetails: Office;\r\n userDetails: User;\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, private route: ActivatedRoute, public clientsContactsService: ClientsContactsService, public invoicingService: InvoicingService, public userSessionService: UserSessionService, public router: Router, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.selectedInvoice = new Invoice();\r\n this.clientDetails = new Client();\r\n this.officeDetails = new Office();\r\n this.userDetails = new User();\r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n this.route.params.forEach(params => {\r\n this.invoiceId = params[\"id\"];\r\n //call your function, like getUserInfo()\r\n this.getInvoice(this.invoiceId);\r\n });\r\n this.invoiceSettings = new InvoiceSettings();\r\n this.getInvoiceSettings(this.officeId)\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getUser(userId: number) {\r\n\r\n this.officesUsersRolesService.getUsers(userId, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.userDetails = resp.userDetails.users[0];\r\n }\r\n })\r\n\r\n }\r\n\r\n getInvoice(invoiceId: number) {\r\n\r\n this.invoicingService.getInvoices(invoiceId, 0, 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.selectedInvoice = resp.invoices.invoices[0];\r\n this.lineItems = resp.invoices.invoices[0].lineItems;\r\n this.clientId = resp.invoices.invoices[0].clientId;\r\n this.getClient(this.clientId);\r\n this.getOffice(this.officeId);\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n getOffice(officeId: number) {\r\n\r\n this.officesUsersRolesService.getOffices(officeId, 0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.officeDetails = resp.officeDetails.offices[0];\r\n }\r\n\r\n\r\n })\r\n\r\n }\r\n\r\n getClient(clientId: number) {\r\n\r\n this.clientsContactsService.getClients(clientId, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.clientDetails = resp.clientDetails.clients[0];\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n getInvoiceSettings(officeId: number) {\r\n\r\n this.invoicingService.getInvoiceSettings(0, officeId, 0, 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.invoiceSettings = resp.invoiceSettings[0];\r\n\r\n // this.getUser(this.invoiceSettings.ownerId);\r\n\r\n }\r\n })\r\n\r\n }\r\n\r\n updateReference(selectedInvoice): void {\r\n \r\n let dialogRef = this.dialog.open(ChangeInvoiceReferenceDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n \r\n completeInvoiceDialog(selectedInvoice): void {\r\n \r\n let dialogRef = this.dialog.open(CompleteInvoiceDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n finaliseInvoiceDialog(selectedInvoice): void {\r\n \r\n let dialogRef = this.dialog.open(FinaliseInvoiceDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n \r\n console.log(result);\r\n if(result == 'email'){\r\n this.emailInvoiceDialog(this.selectedInvoice);\r\n }\r\n });\r\n \r\n }\r\n\r\n printInvoiceDialog(selectedInvoice): void {\r\n \r\n this.router.navigate(['/print-invoice', selectedInvoice.invoiceId]);\r\n \r\n }\r\n\r\n voidInvoiceDialog(selectedInvoice): void {\r\n\r\n let dialogRef = this.dialog.open(VoidInvoiceDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n emailInvoiceDialog(selectedInvoice): void {\r\n\r\n let dialogRef = this.dialog.open(EmailInvoiceDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice, client: this.clientDetails, invoiceSettings: this.invoiceSettings }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n\r\n \r\n changeDatesDialog(selectedInvoice): void {\r\n\r\n let dialogRef = this.dialog.open(ChangeInvoiceDateDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n \r\n changeTariffDialog(selectedInvoice): void {\r\n\r\n let dialogRef = this.dialog.open(ChangeInvoiceTariffDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n \r\n changePaymentDialog(selectedInvoice): void {\r\n\r\n let dialogRef = this.dialog.open(ChangeInvoicePaymentTypeDialogComponent, {\r\n width: '500px',\r\n data: { invoice: selectedInvoice, client: this.clientDetails}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n pdfExport(invoiceId){\r\n\r\n this.invoicingService.downloadInvoice(invoiceId).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n })\r\n\r\n\r\n }\r\n\r\n downloadFile(data: any) {\r\n \r\n let parsedResponse = data;\r\n let blob = new Blob([parsedResponse], { type: 'application/pdf' });\r\n let url = window.URL.createObjectURL(blob);\r\n\r\n if (navigator.msSaveOrOpenBlob) {\r\n navigator.msSaveBlob(blob, 'data.pdf');\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'data.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n window.URL.revokeObjectURL(url);\r\n\r\n }\r\n\r\n\r\n deleteLineItemDialog(Item): void {\r\n\r\n let dialogRef = this.dialog.open(DeleteLineItemDialogComponent, {\r\n width: '500px',\r\n data: { lineItem: Item }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.getInvoice(this.invoiceId);\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n addCreditDialog(invoice): void {\r\n\r\n let dialogRef = this.dialog.open(RaiseCreditNoteDialogComponent, {\r\n width: '50%',\r\n data: { invoiceData: invoice }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n //this.contactsComponent.getContacts(this.clientId, 1);\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n viewLineItemDialog(Item): void {\r\n\r\n let dialogRef = this.dialog.open(ViewLineItemDialogComponent, {\r\n width: '1000px',\r\n data: { lineItem: Item }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n addLineItemDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddLineItemDialogComponent, {\r\n width: '1000px',\r\n data: { invoice: this.selectedInvoice, client: this.clientDetails }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoice(this.invoiceId);\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtc2VudC1pbnZvaWNlcy5jb21wb25lbnQuY3NzIn0= */\";","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices } from '../../models/officeData';\r\nimport { CallerData, Callers } from '../../models/callerData';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { MessagesService } from '../../services/messages.service';\r\n\r\nimport { AddOfficeDialogComponent } from '../../components/add-office-dialog/add-office-dialog.component';\r\n\r\nimport { OfficesComponent } from '../../components/offices/offices.component';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.css'],\r\n providers: [ClientsContactsService, MessagesService, OfficesUsersRolesService]\r\n})\r\nexport class AdminComponent implements OnInit {\r\n listOfOffices: Offices[];\r\n noOfOffices: any;\r\n filteredData: Observable; // async pipe needs to be an Observable\r\n isActiveFilter: number = 1;\r\n myformGroup: FormGroup;\r\n rForm: FormGroup;\r\n filteredClients: ClientAutocomplete[] = [];\r\n filteredContacts: ContactAutocomplete[] = [];\r\n filteredCallers: Callers[] = [];\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n\r\n selectedClientId: number = 0;\r\n\r\n @ViewChild(OfficesComponent) officeComponent: OfficesComponent;\r\n\r\n constructor(public clientsContactsService: ClientsContactsService, public userSessionService: UserSessionService, public officesUsersRolesService: OfficesUsersRolesService, public messagesService: MessagesService, private fb: FormBuilder, public dialog: MatDialog, public snackBar: MatSnackBar) {\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n this.rForm = fb.group({\r\n 'clientAutocomplete': new FormControl(),\r\n 'contactAutocomplete': new FormControl(),\r\n 'callerAutocomplete': new FormControl()\r\n });\r\n this.rForm.controls['clientAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientAutocomplete'].value);\r\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n });\r\n\r\n this.rForm.controls['contactAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['contactAutocomplete'].value);\r\n if (this.rForm.controls['contactAutocomplete'].value === '' || typeof this.rForm.controls['contactAutocomplete'].value != 'string') {\r\n return this.filteredContacts = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.rForm.controls['contactAutocomplete'].value, 0, this.selectedClientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts = res.contacts\r\n })\r\n }\r\n });\r\n\r\n this.rForm.controls['callerAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['callerAutocomplete'].value);\r\n if (this.rForm.controls['callerAutocomplete'].value === '' || typeof this.rForm.controls['callerAutocomplete'].value != 'string') {\r\n return this.filteredCallers = null;\r\n } else {\r\n this.messagesService.getCaller(this.rForm.controls['callerAutocomplete'].value, this.selectedClientId)\r\n .subscribe(res => {\r\n return this.filteredCallers = res.callers\r\n })\r\n }\r\n });\r\n }\r\n\r\n setClient(client) {\r\n if (client.clientId > 0) {\r\n this.selectedClientId = client.clientId;\r\n }\r\n }\r\n test(option) {\r\n\r\n console.log(option);\r\n }\r\n onKey($event) {\r\n console.log($event)\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n\r\n\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n\r\n displayFnCallers(caller: Callers): any {\r\n return caller ? caller.callerName : caller;\r\n }\r\n\r\n addOfficeDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddOfficeDialogComponent, {\r\n width: '1000px'\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.officeComponent.getOffices(1);\r\n });\r\n\r\n }\r\n\r\n getOffices(isActive: number) {\r\n this.officesUsersRolesService.getOffices(0, '0', isActive, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.noOfOffices = resp.officeDetails.totalCount;\r\n this.listOfOffices = resp.officeDetails.offices;\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n myControl: FormControl = new FormControl();\r\n\r\n options = [\r\n 'One',\r\n 'Two',\r\n 'Three'\r\n ];\r\n\r\n filteredOptions: Observable;\r\n\r\n ngOnInit() {\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n \r\n this.filteredOptions = this.myControl.valueChanges\r\n .startWith(null)\r\n .map(val => val ? this.filter(val) : this.options.slice());\r\n }\r\n\r\n filter(val: string): string[] {\r\n return this.options.filter(option =>\r\n option.toLowerCase().indexOf(val.toLowerCase()) === 0);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClientModule, HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable , BehaviorSubject , Subject } from 'rxjs';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport 'rxjs/Rx';\r\n\r\n\r\nimport { AppSettings } from '../app-settings';\r\nimport { UserUpdate } from '../models/userData';\r\nimport { MeData, Me } from '../models/meData';\r\n\r\nexport class Check {\r\n errors: string | null;\r\n isValid: boolean;\r\n}\r\nexport const TEMP: MeData = {\r\n errors: null,\r\n user: null\r\n}\r\n\r\n@Injectable()\r\nexport class UserSessionService {\r\n\r\n userIdSubject = new BehaviorSubject('');\r\n officeIdSubject = new BehaviorSubject('');\r\n rolesSubject = new BehaviorSubject('');\r\n userNameSubject = new BehaviorSubject('');\r\n\r\n getUserId(): Observable {\r\n if (localStorage.getItem('userId')) {\r\n this.userIdSubject.next(localStorage.getItem('userId'));\r\n return this.userIdSubject.asObservable();\r\n } else {\r\n this.getMe();\r\n return this.userIdSubject.asObservable();\r\n }\r\n }\r\n\r\n getOfficeId(): Observable {\r\n if (localStorage.getItem('officeId')) {\r\n this.officeIdSubject.next(localStorage.getItem('officeId'));\r\n return this.officeIdSubject.asObservable();\r\n } else {\r\n this.getMe();\r\n return this.officeIdSubject.asObservable();\r\n }\r\n }\r\n\r\n getRoles(): Observable {\r\n \r\n if (localStorage.getItem('roles')) {\r\n this.rolesSubject.next(localStorage.getItem('roles'));\r\n return this.rolesSubject.asObservable();\r\n } else {\r\n this.getMe();\r\n return this.rolesSubject.asObservable();\r\n }\r\n }\r\n constructor(public http: HttpClient, public snackBar: MatSnackBar, private router: Router) {\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n checkLogin(data: Check){\r\n\r\n if (data.isValid) {\r\n \r\n } else {\r\n this.router.navigate(['/login'], { queryParams: { timeout: 2 }});\r\n }\r\n\r\n\r\n }\r\n\r\n updateUser(meData: MeData) {\r\n\r\n\r\n if (meData.errors.length > 0) {\r\n this.openSnackBar(meData.errors[0].error);\r\n } else {\r\n\r\n \r\n this.userNameSubject.next(meData.user[0].userName);\r\n console.log(meData.user[0].userName);\r\n localStorage.setItem('userId', meData.user[0].userId.toString());\r\n localStorage.setItem('officeId', meData.user[0].officeId.toString());\r\n let userRoles = '';\r\n meData.user[0].roles.forEach((role) => {\r\n userRoles += role.roleId + ',';\r\n });\r\n userRoles = userRoles.slice(0, -1);\r\n \r\n localStorage.setItem('roles', userRoles);\r\n\r\n\r\n }\r\n\r\n\r\n }\r\n updateUserName(): Observable {\r\n return this.userNameSubject.asObservable();\r\n }\r\n\r\n getMe(): Observable {\r\n\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/me\").do(data => this.updateUser(data));\r\n }\r\n\r\n checkToken(): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/checkAuthentication\").do(data => this.checkLogin(data));\r\n }\r\n\r\n updateBasicDetails(userId: number, updateData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/user/updateBasicDetails/\" + userId, updateData).do(data => this.getMe());\r\n }\r\n\r\n}\r\n","export default \"
\\r\\n \\r\\n \\r\\n

Update Notice

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Active\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtaW52b2ljaW5nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n
\\r\\n

Take a message

\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n New Message\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{contact.fullName}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{contactMovement?.outOfOffice}} is currently out of office.\\r\\n cancel\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n {{hour.viewValue}}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{minute.viewValue}}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{newMessage.message.length}} / {{smsLimit - (callerLength + phoneLength + companyLength + emailLength + referenceLength)}}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{template.message}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{delivery.name}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Client\\r\\n \\r\\n \\r\\n \\r\\n business\\r\\n {{selectedClient.clientName}}\\r\\n
\\r\\n ({{selectedClient.clientAcronym}})\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n call \\\"{{selectedClient.answerScript}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n info {{selectedClient.instruction}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n call_end \\\"{{selectedClient.hangUpScript}}\\\"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n speaker_notes {{selectedClient.notes}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n

Web Links

\\r\\n\\r\\n \\r\\n \\r\\n

\\r\\n {{selectedClient.webUrl}}\\r\\n open_in_new\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n

\\r\\n {{selectedClient.privateUrl}}\\r\\n open_in_new\\r\\n \\r\\n
\\r\\n
\\r\\n

\\r\\n

\\r\\n {{selectedClient.formUrl}}\\r\\n open_in_new\\r\\n \\r\\n

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n

Movements

\\r\\n\\r\\n No active Movements\\r\\n
\\r\\n\\r\\n
0\\\" class=\\\" full-width\\\" style=\\\"padding:0px;\\\">\\r\\n
\\r\\n

\\r\\n {{movement.startDate | amDateFormat:'MMM Do YYYY'}} - {{movement.endDate | amDateFormat:'MMM\\r\\n Do YYYY'}}\\r\\n \\r\\n

\\r\\n
{{movement.notes}}
\\r\\n
{{movement.forwardTo}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n

Phone Numbers

\\r\\n Phone:{{selectedClient.phoneNo}}\\r\\n
DDI: {{selectedClient.internalDDI}}\\r\\n
Emergency No: {{selectedClient.emergencyNo}}\\r\\n
Fax No: {{selectedClient.faxNo}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n

Address

\\r\\n {{selectedClient.addressLine1}}
\\r\\n {{selectedClient.addressLine2}}
\\r\\n {{selectedClient.addressLine3}}
\\r\\n {{selectedClient.townCity}}
\\r\\n {{selectedClient.county}}
\\r\\n {{selectedClient.postCode}}
\\r\\n {{selectedClient.country}}
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Contact\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
0;else other_content\\\">\\r\\n \\r\\n person\\r\\n {{contactInfo.title}} {{contactInfo.fullName}}\\r\\n ({{contactInfo.position}})\\r\\n \\r\\n \\r\\n \\r\\n Principle\\r\\n Default\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n Mobile:\\r\\n
\\r\\n\\r\\n {{contactInfo.mobileNo}}\\r\\n \\r\\n {{ contactInfo.mobileNo | hideVal}}\\r\\n {{contactInfo.mobileNo}}\\r\\n \\r\\n file_copy\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Phone:\\r\\n
\\r\\n\\r\\n {{contactInfo.phoneNo}}\\r\\n \\r\\n {{ contactInfo.phoneNo | hideVal}}\\r\\n {{contactInfo.phoneNo}}\\r\\n \\r\\n file_copy\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Email Address 1:\\r\\n
\\r\\n\\r\\n {{contactInfo.emailAddress1}}\\r\\n \\r\\n {{ contactInfo.emailAddress1 | hideVal}}\\r\\n {{contactInfo.emailAddress1}}\\r\\n \\r\\n file_copy\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Email Address 2:\\r\\n
\\r\\n\\r\\n {{contactInfo.emailAddress2}}\\r\\n \\r\\n {{ contactInfo.emailAddress2 | hideVal}}\\r\\n {{contactInfo.emailAddress2}}\\r\\n \\r\\n file_copy\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n Fax:\\r\\n
\\r\\n\\r\\n {{contactInfo.faxNo}}\\r\\n \\r\\n {{ contactInfo.faxNo | hideVal}}\\r\\n {{contactInfo.faxNo}}\\r\\n \\r\\n file_copy\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Delivery Preference:\\r\\n
{{contactInfo.deliveryTypeName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Please select a contact\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Recent Messages\\r\\n \\r\\n \\r\\n \\r\\n
Contact has no messages
\\r\\n
0\\\" style=\\\"max-height:600px; overflow-y:scroll\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Message ForCallerTakenStatus
{{message.contactName}}{{message.callerName}}{{message.dateTaken | amLocal | amDateFormat: 'DD/MM/YYYY HH:mm'}}\\r\\n message\\r\\n sms_failed\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { LoginService } from '../../services/login.service';\r\n\r\nimport { PasswordData } from '../../models/passwordData';\r\n\r\n@Component({\r\n selector: 'app-reset',\r\n templateUrl: './reset.component.html',\r\n styleUrls: ['./reset.component.css']\r\n})\r\nexport class ResetComponent implements OnInit {\r\n rForm: FormGroup;\r\n userId: number;\r\n passwordData: PasswordData;\r\n loading: boolean = false;\r\n\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, private fb: FormBuilder, public snackBar: MatSnackBar, public loginService: LoginService) {\r\n\r\n this.rForm = fb.group({\r\n\r\n 'password': [{ value: '' }, Validators.required],\r\n 'confirmPassword': [{ value: '' }, Validators.required],\r\n }\r\n , { validator: this.checkIfMatchingPasswords('password', 'confirmPassword') });\r\n\r\n }\r\n\r\n checkIfMatchingPasswords(passwordKey: string, passwordConfirmationKey: string) {\r\n\r\n return (group: FormGroup) => {\r\n\r\n let passwordInput = group.controls[passwordKey],\r\n passwordConfirmationInput = group.controls[passwordConfirmationKey];\r\n\r\n if (passwordInput.value === passwordConfirmationInput.value) {\r\n return passwordConfirmationInput.setErrors(null);\r\n }\r\n else {\r\n return passwordConfirmationInput.setErrors({ notEquivalent: true })\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.passwordData = new PasswordData();\r\n\r\n this.route.queryParams.subscribe((params: Params) => {\r\n this.userId = params[\"id\"] || 0;\r\n\r\n })\r\n\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 25000,\r\n });\r\n }\r\n resetPassword(post) {\r\n\r\n this.loginService.changePasswordWithEncryptedUserId(this.userId, this.passwordData).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.router.navigate(['/login']);\r\n this.openSnackBar(\"Password updated\");\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\nimport { TemplateData, Templates, Template } from '../models/templateData';\r\n\r\n@Injectable()\r\nexport class TemplatesService {\r\n\r\n constructor(public http: HttpClient) { }\r\n\r\n\r\n getTemplates(templateId:number, messageName: string, officeId: number, clientId: number, isGlobal:number, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/messageTemplate/\" + templateId + '/' + messageName + '/' + officeId + '/' + clientId + '/' + isGlobal + '/' + isActive );\r\n }\r\n addTemplates(templateData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/messageTemplate/add\", templateData);\r\n }\r\n updateTemplates(templateId: number, templateData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/messageTemplate/update/\" + templateId, templateData);\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem, EmailInvoiceData } from '../../models/invoiceData';\r\n\r\n\r\n@Component({\r\n selector: 'app-change-invoice-reference-dialog',\r\n templateUrl: './change-invoice-reference-dialog.component.html',\r\n styleUrls: ['./change-invoice-reference-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class ChangeInvoiceReferenceDialogComponent implements OnInit {\r\n invoiceData: Invoice;\r\n rForm: FormGroup;\r\n\r\n constructor(private fb: FormBuilder, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n 'reference': ['', Validators.required]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.invoiceData = this.data.invoice;\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n changeReference(post) {\r\n\r\n this.invoicingService.updateInvoice(this.invoiceData.invoiceId, this.invoiceData).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoice Reference Updated\");\r\n\r\n this.dialogRef.close();\r\n }\r\n })\r\n\r\n }\r\n}\r\n","export class InvoiceProductsData{\r\n errors: any[] | null;\r\n invoiceProducts: InvoiceProducts | null;\r\n}\r\nexport class InvoiceProducts{\r\n products: Products[] | null;\r\n totalCount: number | null;\r\n}\r\nexport class Products{\r\n code: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: any;\r\n description: string;\r\n includedMessages: number;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: any;\r\n lastUpdatedDate: any;\r\n messageCost: number;\r\n officeId: number;\r\n officeName: string;\r\n productCode: string;\r\n productId; number;\r\n productName: string;\r\n productTypeId: number;\r\n productTypeName: string;\r\n rate: any;\r\n taxId: number;\r\n totalCount: number;\r\n unitCost: number;\r\n isGlobal: boolean;\r\n isDisplayInvoice: boolean = true;\r\n}\r\nexport class Product{\r\n code: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: any;\r\n description: string;\r\n includedMessages: number;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: any;\r\n lastUpdatedDate: any;\r\n messageCost: number;\r\n officeId: number;\r\n officeName: string;\r\n productCode: string;\r\n productId; number;\r\n productName: string;\r\n productTypeId: number;\r\n productTypeName: string;\r\n rate: any;\r\n taxId: number;\r\n totalCount: number;\r\n unitCost: number;\r\n isGlobal: boolean;\r\n isDisplayInvoice: boolean = true;\r\n}\r\nexport class InvoiceRecurringProductsData{\r\n errors: any[] | null;\r\n recurringProducts: RecurringProducts[] | null;\r\n}\r\nexport class RecurringProducts{\r\n clientId: number;\r\n clientName: string\r\n productCode: string;\r\n productId: number;\r\n productName: string;\r\n}\r\nexport class RecurringProduct{\r\n clientId: number;\r\n clientName: string\r\n productCode: string;\r\n productId: number;\r\n productName: string;\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnRzLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\n\r\n@Component({\r\n selector: 'app-add-office-dialog',\r\n templateUrl: './add-office-dialog.component.html',\r\n styleUrls: ['./add-office-dialog.component.css'],\r\n providers: [OfficesUsersRolesService]\r\n})\r\nexport class AddOfficeDialogComponent implements OnInit {\r\n listOfSourceTypes: SourceTypes[];\r\n newOffice: Office;\r\n rForm: FormGroup;\r\n filteredUsers: Users[];\r\n selectedOption: User;\r\n addInfo: any;\r\n\r\n\r\n constructor(public dialogRef: MatDialogRef, private fb: FormBuilder, public officesUsersRolesService: OfficesUsersRolesService, public snackBar: MatSnackBar, ) {\r\n this.rForm = fb.group({\r\n\r\n 'name': [null, Validators.required],\r\n 'isActive': [true, Validators.required],\r\n 'addressLine1': [null, Validators.required],\r\n 'addressLine2': [null, Validators.required],\r\n 'addressLine3': [null],\r\n 'townCity': [null, Validators.required],\r\n 'postCode': [null, Validators.required],\r\n 'country': [null, Validators.required],\r\n 'ownerId': [null],\r\n 'phoneNo': [null, Validators.required],\r\n 'emailAddress': [null],\r\n 'isOutOfHours': [false, Validators.required],\r\n 'isHeadOffice': [false, Validators.required],\r\n 'referenceNo': [null, Validators.required],\r\n 'serverName': [null],\r\n 'userName': [null],\r\n 'password': [null],\r\n 'isUseSSL': [false],\r\n 'port': [null],\r\n 'smsAccountPassword': [null],\r\n 'smsAccountUserName': [null],\r\n 'smsSubAccountName': [null]\r\n });\r\n\r\n }\r\n options = [];\r\n myControl: FormControl = new FormControl();\r\n\r\n filteredOptions: Observable;\r\n\r\n filter(userName: string): User[] {\r\n\r\n this.officesUsersRolesService.getUsers(0, userName, 1, 1, 1, 'ASC', 1).subscribe(resp => {\r\n this.options = [];\r\n //this.filteredUsers = resp.userDetails.users;\r\n\r\n resp.userDetails.users.forEach((users) => {\r\n\r\n let user = new User();\r\n user = users;\r\n this.options.push(user);\r\n });\r\n\r\n console.log(\"here \" + userName);\r\n });\r\n\r\n return this.options.filter(option =>\r\n option.userName.toLowerCase().indexOf(userName.toLowerCase()) === 0);\r\n }\r\n\r\n displayFn(user: User): string {\r\n this.selectedOption = user;\r\n console.log(this.selectedOption);\r\n return user ? user.userName : '';\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.newOffice = new Office();\r\n this.filteredOptions = this.myControl.valueChanges\r\n .startWith(null)\r\n .map(user => user && typeof user === 'object' ? user.userName : user)\r\n .map(userName => userName ? this.filter(userName) : this.options.slice());\r\n\r\n }\r\n\r\n public getUsers(userName: string, officeId: number) {\r\n this.officesUsersRolesService.getUsers(0, userName, officeId, 1, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n //this.filteredUsers = resp.userDetails.users;\r\n\r\n resp.userDetails.users.forEach((users) => {\r\n console.log(users);\r\n let user = new User();\r\n user = users;\r\n this.filteredUsers.push(user);\r\n });\r\n\r\n return this.filteredUsers;\r\n //console.log(this.listOfOffices);\r\n });\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n addOffice(post) {\r\n this.officesUsersRolesService.addOffice(this.newOffice).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Office added\");\r\n this.dialogRef.close();\r\n }\r\n });\r\n\r\n }\r\n}\r\n","export default \"
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ state.viewValue }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Created Date\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n 0\\\" [length]=\\\"noOfMessages\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n
\\r\\n

No messages returned, please change the filter or create a message.

\\r\\n
\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
MessageClientCompanyContactCallerDelivery TypeActiveDate TakenStatus
{{message.message}}
{{message.clientName}}{{message.company}}{{message.contactName}}{{message.callerName}}{{message.deliveryTypeName}}\\r\\n done\\r\\n clear\\r\\n {{message.dateTaken | amLocal | amDateFormat: 'DD/MM/YYYY HH:mm'}}\\r\\n message\\r\\n sms_failed\\r\\n\\r\\n
\\r\\n 0\\\" [length]=\\\"noOfMessages\\\" [pageSize]=\\\"50\\\" (page)=\\\"setPage($event); pageEvent = $event \\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export class TemplateData{\r\n errors: any[] | null;\r\n templates: Templates[];\r\n }\r\n export class Templates{\r\n clientId: number;\r\n clientName: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n deliveryTypeId: number;\r\n deliveryTypeName: string;\r\n isActive: boolean;\r\n isGlobal: boolean;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: string | null;\r\n lastUpdatedDate: string | null;\r\n message: string;\r\n templateId: number;\r\n officeId: number;\r\n }\r\n export class Template{\r\n clientId: number;\r\n clientName: string;\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n deliveryTypeId: number;\r\n deliveryTypeName: string;\r\n isActive: boolean;\r\n isGlobal: boolean;\r\n lastUpdatedBy: string | null;\r\n lastUpdatedById: string | null;\r\n lastUpdatedDate: string | null;\r\n message: string;\r\n templateId: number;\r\n officeId: number;\r\n }","export default \"
\\r\\n\\r\\n \\r\\n

Add Movement

\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.contactName }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.contactName }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\";","export default \"\\r\\n

Confirm patch

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Did you successfully transfer this call? If not please go back and change the delivery type.\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\";","export default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Invoicing

\\r\\n

Scheduled invoices are generated automatically at 5am each day.

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ invoice.invoiceNo }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Draft ({{noOfInvoicesDraft}})\\r\\n \\r\\n\\r\\n
\\r\\n

No invoices found.

\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageDraft($event); pageEvent = $event\\\">\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Invoice Number\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Client\\r\\n \\r\\n\\r\\n Date Created\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Line Items\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n\\r\\n Total\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n
\\r\\n {{invoice.invoiceNo}}\\r\\n \\r\\n {{invoice.clientName}}\\r\\n \\r\\n {{invoice.createdDate | amDateFormat:'LL'}}\\r\\n \\r\\n {{invoice.lineItems.length}}\\r\\n \\r\\n {{invoice.totalInvoiceAmount | currency:'EUR'}}\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageDraft($event); pageEvent = $event\\\">\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n To be emailed ({{noOfInvoicesEmail}})\\r\\n \\r\\n
\\r\\n

No invoices found.

\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageEmail($event); pageEvent = $event\\\">\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Invoice Number\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Client\\r\\n \\r\\n\\r\\n Date Created\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n\\r\\n Line Items\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n\\r\\n Total\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n
\\r\\n {{invoice.invoiceNo}}\\r\\n \\r\\n {{invoice.clientName}}\\r\\n \\r\\n {{invoice.createdDate | amDateFormat:'LL'}}\\r\\n \\r\\n {{invoice.lineItems.length}}\\r\\n \\r\\n {{invoice.totalInvoiceAmount | currency:'EUR'}}\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageEmail($event); pageEvent = $event\\\">\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n To be exported / completed ({{noOfInvoicesSage}})\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

No invoices found.

\\r\\n
\\r\\n\\r\\n 50\\\" (page)=\\\"setPageSage($event); pageEvent = $event\\\">\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Invoice Number\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Client\\r\\n \\r\\n \\r\\n Date Created\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Line Items\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n \\r\\n Total\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n
\\r\\n {{invoice.invoiceNo}}\\r\\n \\r\\n {{invoice.clientName}}\\r\\n \\r\\n {{invoice.createdDate | amDateFormat:'LL'}}\\r\\n \\r\\n {{invoice.lineItems.length}}\\r\\n \\r\\n {{invoice.totalInvoiceAmount | currency:'EUR'}}\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageSage($event); pageEvent = $event\\\">\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n Completed \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

No invoices found.

\\r\\n
\\r\\n
\\r\\n


Loading...

\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageCompleted($event); pageEvent = $event\\\">\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n Invoice Number\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Client\\r\\n \\r\\n \\r\\n Date Created\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n Line Items\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n \\r\\n \\r\\n Total\\r\\n\\r\\n arrow_drop_down\\r\\n arrow_drop_up\\r\\n \\r\\n
\\r\\n {{invoice.invoiceNo}}\\r\\n \\r\\n {{invoice.clientName}}\\r\\n \\r\\n {{invoice.createdDate | amDateFormat:'LL'}}\\r\\n \\r\\n {{invoice.lineItems.length}}\\r\\n \\r\\n {{invoice.totalInvoiceAmount | currency:'EUR'}}\\r\\n
\\r\\n 50\\\" (page)=\\\"setPageCompleted($event); pageEvent = $event\\\">\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n


\\r\\n
\\r\\n
\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\n\r\nimport { TemplatesService } from '../../services/templates.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\n\r\nimport { ClientData, ClientAutocomplete } from '../../models/clientData';\r\nimport { TemplateData, Templates, Template } from '../../models/templateData';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-template-dialog',\r\n templateUrl: './add-template-dialog.component.html',\r\n styleUrls: ['./add-template-dialog.component.css'],\r\n providers: [TemplatesService, UserSessionService, ClientsContactsService]\r\n})\r\nexport class AddTemplateDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n newTemplate: Template;\r\n officeIdSubject: Observable;\r\n filteredClients: ClientAutocomplete[] = [];\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public clientsContactsService: ClientsContactsService, public userSessionService: UserSessionService, public templatesService: TemplatesService, public snackBar: MatSnackBar) {\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n this.rForm = fb.group({\r\n\r\n 'message': [null, Validators.required],\r\n 'officeId': [null],\r\n 'clientId': [{ value: null, disable: true }, Validators.required],\r\n 'isGlobal': [true],\r\n 'deliveryTypeId': [1],\r\n\r\n });\r\n\r\n this.rForm.controls['clientId'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientId'].value);\r\n if (this.rForm.controls['clientId'].value === '' || typeof this.rForm.controls['clientId'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientId'].value, 0, this.newTemplate.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n\r\n });\r\n\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n\r\n ngOnInit() {\r\n this.newTemplate = new Template();\r\n this.newTemplate.isGlobal = this.data.isGlobal;\r\n this.newTemplate.deliveryTypeId = 1;\r\n this.newTemplate.officeId = this.data.officeId;\r\n \r\n if(this.data.clientId > 0){\r\n this.newTemplate.clientId = this.data.clientId;\r\n this.rForm.controls['clientId'].setValue({clientId: this.data.clientId, clientName: this.data.clientName})\r\n\r\n }\r\n //this.officeIdSubject.subscribe(id => this.newTemplate.officeId = Number(id));\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n setClient(client) {\r\n\r\n if (client.clientId > 0) {\r\n this.newTemplate.clientId = client.clientId;\r\n }\r\n }\r\n globalChange(event: Event) {\r\n const ctrl = this.rForm.get('clientId');\r\n\r\n if (event) {\r\n ctrl.disable();\r\n } else {\r\n\r\n ctrl.enable();\r\n }\r\n }\r\n addTemplate(post) {\r\n\r\n this.templatesService.addTemplates(this.newTemplate).subscribe(resp => {\r\n\r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n\r\n } else {\r\n\r\n this.openSnackBar(\"Template Added\");\r\n this.dialogRef.close();\r\n\r\n }\r\n });\r\n\r\n }\r\n}\r\n","export class UserData{\r\n errors: any[] | null;\r\n userDetails: UserDetails | null;\r\n}\r\nexport class UserDetails{\r\n totalCount: number;\r\n users: Users[];\r\n}\r\nexport class Users{\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n emailAddress: string;\r\n firstName: string;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n officeId: number;\r\n officeName: string;\r\n surname: string;\r\n totalCount: number;\r\n userId: number;\r\n userName: string;\r\n isEODSummary: boolean = false;\r\n}\r\nexport class User{\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n emailAddress: string;\r\n firstName: string;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n officeId: number;\r\n officeName: string;\r\n surname: string;\r\n totalCount: number;\r\n userId: number;\r\n userName: string;\r\n isEODSummary: boolean = false;\r\n}\r\n\r\nexport class UserUpdate{\r\n firstName: string;\r\n surname: string;\r\n emailAddress: string;\r\n password: string; \r\n isEODSummary: boolean = false;\r\n}\r\nexport class UserAccount{\r\n createdBy: string;\r\n createdById: number;\r\n createdDate: string;\r\n emailAddress: string;\r\n firstName: string;\r\n isActive: boolean;\r\n lastUpdatedBy: string;\r\n lastUpdatedById: number;\r\n lastUpdatedDate: string;\r\n officeId: number;\r\n officeName: string;\r\n surname: string;\r\n totalCount: number;\r\n userId: number;\r\n userName: string;\r\n password: string | null = '';\r\n confirmPassword: string | null = '';\r\n changePassword: boolean = false;\r\n isEODSummary: boolean = false;\r\n}\r\n","import {A11yModule} from '@angular/cdk/a11y';\r\nimport {DragDropModule} from '@angular/cdk/drag-drop';\r\nimport {PortalModule} from '@angular/cdk/portal';\r\nimport {ScrollingModule} from '@angular/cdk/scrolling';\r\nimport {CdkStepperModule} from '@angular/cdk/stepper';\r\nimport {CdkTableModule} from '@angular/cdk/table';\r\nimport {CdkTreeModule} from '@angular/cdk/tree';\r\nimport {NgModule} from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n@NgModule({\r\n exports: [\r\n A11yModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n PortalModule,\r\n ScrollingModule,\r\n ]\r\n})\r\nexport class MaterialModule {}\r\n\r\n\r\n/** Copyright 2019 Google Inc. All Rights Reserved.\r\n Use of this source code is governed by an MIT-style license that\r\n can be found in the LICENSE file at http://angular.io/license */","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\n//import { MatDialog, MatDialogRef, MatTabChangeEvent } from '@angular/material/dialog';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport {ActivatedRouteSnapshot, DetachedRouteHandle, RouteReuseStrategy, ParamMap} from '@angular/router';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\nimport { RoleData, Roles, Role } from '../../models/roleData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\n\r\nimport { NoticesComponent } from '../../components/notices/notices.component';\r\nimport { TemplatesComponent } from '../../components/templates/templates.component';\r\nimport { AddUserDialogComponent } from '../../components/add-user-dialog/add-user-dialog.component';\r\nimport { AddClientDialogComponent } from '../../components/add-client-dialog/add-client-dialog.component';\r\nimport { AddTemplateDialogComponent } from '../../components/add-template-dialog/add-template-dialog.component';\r\nimport { AddNoticeDialogComponent } from '../../components/add-notice-dialog/add-notice-dialog.component';\r\n\r\nimport { UsersComponent } from '../../components/users/users.component';\r\nimport { InvoiceSettingsComponent } from '../../components/invoice-settings/invoice-settings.component';\r\nimport { NoticeData, NoticeDetails, NoticeDetail } from '../../models/noticeData';\r\n\r\nimport { AddInvoiceProductDialogComponent } from '../../components/add-invoice-product-dialog/add-invoice-product-dialog.component';\r\nimport { InvoicingProductsComponent } from '../../components/invoicing-products/invoicing-products.component';\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-office-detail',\r\n templateUrl: './office-detail.component.html',\r\n styleUrls: ['./office-detail.component.css'],\r\n providers: [OfficesUsersRolesService, ClientsContactsService, InvoiceSettingsComponent, UserSessionService]\r\n})\r\nexport class OfficeDetailComponent implements OnInit {\r\n listOfOffices: OfficeData;\r\n sub: any;\r\n id: number;\r\n rForm: FormGroup;\r\n post: any;\r\n test: any;\r\n updateInfo: any;\r\n officeSelected: Office;\r\n filteredUsers: User[] = [];\r\n selectedOption: any;\r\n officeOwner: any;\r\n showHide: boolean = true;\r\n public ownerId: number;\r\n autoCompleteValid: boolean = true;\r\n listOfRoles: RoleData;\r\n selectedTab = 0;\r\n param: any;\r\n officeId: number;\r\n listOfSourceTypes: SourceTypeData;\r\n paymentTypes: PaymentTypesData;\r\n taxCodes: TaxData;\r\n listOfNotice: NoticeDetail[] = [];\r\n tab: number = 1;\r\n\r\n @ViewChild(UsersComponent) usersComponent: UsersComponent;\r\n @ViewChild(TemplatesComponent) templatesComponent: TemplatesComponent;\r\n @ViewChild(NoticesComponent) noticesComponent: NoticesComponent;\r\n @ViewChild(InvoiceSettingsComponent) invoiceSettingsComponent: InvoiceSettingsComponent;\r\n @ViewChild(InvoicingProductsComponent) invoicingProductsComponent: InvoicingProductsComponent;\r\n\r\n\r\n constructor(private location: Location, public officesUsersRolesService: OfficesUsersRolesService, public userSessionService: UserSessionService, public clientsContactsService: ClientsContactsService, private router: Router, private route: ActivatedRoute, private fb: FormBuilder, public snackBar: MatSnackBar, public dialog: MatDialog) {\r\n\r\n route.url.subscribe((u) => {\r\n console.log(route.snapshot.params.officeId);\r\n this.getOffices(route.snapshot.params.officeId, '0', 0, 1);\r\n });\r\n /* route.params.subscribe(val => {\r\n // put the code from `ngOnInit` here\r\n\r\n this.officeId = val.officeId;\r\n this.getOffices(this.officeId, '0', 0, 1);\r\n console.log(val.officeId + \"//\" + this.officeId);\r\n });\r\n*/\r\n\r\n this.rForm = fb.group({\r\n\r\n 'name': [null, Validators.required],\r\n 'addressLine1': [null, Validators.required],\r\n 'addressLine2': [null],\r\n 'addressLine3': [null],\r\n 'townCity': [null, Validators.required],\r\n 'postCode': [null, Validators.required],\r\n 'country': [null, Validators.required],\r\n 'ownerId': [null, Validators.required],\r\n 'phoneNo': [null, Validators.required],\r\n 'emailAddress': [null],\r\n 'isOutOfHours': [false],\r\n 'isHeadOffice': [false],\r\n 'referenceNo': ['', [Validators.required, Validators.minLength(4), Validators.maxLength(4)]],\r\n 'temp': [null],\r\n 'ownerUser': [null],\r\n 'isActive': [null],\r\n 'isUseSSL': [false],\r\n 'port': [null],\r\n 'serverName': [null],\r\n 'userName': [null],\r\n 'password': [null],\r\n 'smsAccountPassword': [null],\r\n 'smsAccountUserName': [null],\r\n 'smsSubAccountName': [null]\r\n\r\n });\r\n\r\n this.myControlUsers.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlUsers.value);\r\n if (this.myControlUsers.value === '' || typeof this.myControlUsers.value != 'string') {\r\n return this.filteredUsers = null;\r\n } else {\r\n this.officesUsersRolesService.getUsers(0, this.myControlUsers.value, this.officeId, 1, 1, 'ASC', 1)\r\n .subscribe(res => {\r\n return this.filteredUsers = res.userDetails.users;\r\n })\r\n }\r\n });\r\n }\r\n\r\n displayFnUsers(user: User): any {\r\n return user ? user.userName : user;\r\n }\r\n\r\n\r\n myControlUsers: FormControl = new FormControl();\r\n options = [];\r\n\r\n filteredOptions: Observable;\r\n\r\n private acceptedRoutes: string[] = [\"offices/:officeId/tab/0\"];\r\n\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n // check to see if the route's path is in our acceptedRoutes array\r\n if (this.acceptedRoutes.indexOf(route.routeConfig.path) > -1) {\r\n console.log(\"detaching\", route);\r\n return true;\r\n } else {\r\n return false; // will be \"view/:resultId\" when user navigates to result\r\n }\r\n}\r\n\r\n ngOnInit() {\r\n\r\n this.route.params.subscribe(params => {\r\n console.log(params.officeId);\r\n this.officeId = params.officeId;\r\n //this.officeId = +this.route.snapshot.paramMap.get('officeId');\r\n });\r\n \r\n this.tab = +this.route.snapshot.paramMap.get('tabId');\r\n console.log(this.tab);\r\n this.selectedTab = this.tab;\r\n\r\n if (this.selectedTab === 1) {\r\n console.log(\"Users\");\r\n this.usersComponent.officeId = this.officeId;\r\n this.usersComponent.getUsers(this.officeId, 1, 1);\r\n }\r\n if (this.selectedTab === 2) {\r\n console.log(\"Templates\");\r\n this.templatesComponent.officeId = this.officeId;\r\n this.templatesComponent.getTemplates(0, this.officeId, 0, 0, 1);\r\n }\r\n if (this.selectedTab === 3) {\r\n console.log(\"End of Day\");\r\n this.noticesComponent.officeId = this.officeId;\r\n this.noticesComponent.getNotices(this.officeId, 1);\r\n }\r\n\r\n \r\n this.getOffices(this.officeId, '0', 0, 1);\r\n this.usersComponent.officeId = this.officeId;\r\n this.invoiceSettingsComponent.officeId = this.officeId;\r\n\r\n this.noticesComponent.officeId = this.officeId;\r\n\r\n //let id = +this.route.snapshot.paramMap.get('id');\r\n this.showHide = true;\r\n\r\n this.officeSelected = new Office();\r\n\r\n this.getNotices();\r\n\r\n }\r\n checkOwner(event) {\r\n\r\n console.log(event);\r\n if (event === '') {\r\n\r\n this.autoCompleteValid = false;\r\n\r\n } else {\r\n this.autoCompleteValid = true;\r\n }\r\n }\r\n\r\n\r\n filter(userName: string, officeId: number): User[] {\r\n\r\n this.officesUsersRolesService.getUsers(0, userName, officeId, 1, 1, 'ASC', 1).subscribe(resp => {\r\n this.options = [];\r\n //this.filteredUsers = resp.userDetails.users;\r\n\r\n resp.userDetails.users.forEach((users) => {\r\n\r\n let user = new User();\r\n user = users;\r\n this.options.push(user);\r\n });\r\n\r\n console.log(this.options[0]);\r\n });\r\n userName = userName.toString()\r\n return this.options.filter(option =>\r\n option.userName.toLowerCase().indexOf(userName.toLowerCase()) === 0);\r\n\r\n }\r\n\r\n getOwnerUser(userId: number) {\r\n this.officesUsersRolesService.getUsers(userId, '0', 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.officeOwner = new User;\r\n this.officeOwner = resp.userDetails.users[0];\r\n this.myControlUsers.setValue({ userId: this.officeOwner.userId, userName: this.officeOwner.userName });\r\n\r\n this.officeSelected.ownerUser = resp.userDetails.users[0];\r\n\r\n }\r\n });\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n tabChanged = (tabChangeEvent: MatTabChangeEvent): void => {\r\n console.log('tabChangeEvent => ', tabChangeEvent);\r\n console.log('index => ', tabChangeEvent.index);\r\n this.selectedTab = tabChangeEvent.index;\r\n this.router.navigate(['/offices', this.officeId, 'tab', tabChangeEvent.index]);\r\n\r\n if (tabChangeEvent.index === 1) {\r\n console.log(\"Users\");\r\n this.usersComponent.officeId = this.officeId;\r\n this.usersComponent.getUsers(this.officeId, 1, 1);\r\n }\r\n if (tabChangeEvent.index === 2) {\r\n console.log(\"Templates\");\r\n this.templatesComponent.officeId = this.officeId;\r\n this.templatesComponent.getTemplates(0, this.officeId, 0, 0, 1);\r\n }\r\n if (tabChangeEvent.index === 3) {\r\n console.log(\"End of Day\");\r\n this.noticesComponent.officeId = this.officeId;\r\n this.noticesComponent.getNotices(this.officeId, 1);\r\n }\r\n\r\n }\r\n\r\n setUser(user) {\r\n console.log(user)\r\n this.officeSelected.ownerId = user.userId;\r\n this.rForm.controls['ownerId'].setValue(user.userId);\r\n }\r\n\r\n public getUsers(userName: string, officeId: number) {\r\n this.officesUsersRolesService.getUsers(0, userName, officeId, 1, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n resp.userDetails.users.forEach((users) => {\r\n //console.log(users);\r\n let user = new User();\r\n user = users;\r\n this.filteredUsers.push(user);\r\n });\r\n return this.filteredUsers;\r\n //console.log(this.listOfOffices);\r\n });\r\n\r\n }\r\n\r\n getOffices(id: number, officeName: string, isActive: number, officePageNo: number) {\r\n this.officesUsersRolesService.getOffices(id, officeName, isActive, officePageNo).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfOffices = resp;\r\n\r\n this.officeSelected = resp.officeDetails.offices[0];\r\n\r\n /*\r\n resp.officeDetails.offices.forEach((offices) => {\r\n //console.log(offices);\r\n\r\n this.officeSelected = offices;\r\n\r\n });\r\n */\r\n if(this.officeSelected.ownerId !=null){\r\n this.getOwnerUser(this.officeSelected.ownerId);\r\n }\r\n }\r\n });\r\n\r\n }\r\n submitted = false;\r\n\r\n\r\n updateOffice(post) {\r\n //console.log(post);\r\n\r\n this.officeSelected.name = post.name;\r\n this.submitted = true;\r\n // this.officeSelected.ownerId = this.officeSelected.ownerUser.userId;\r\n\r\n\r\n this.officesUsersRolesService.updateOffice(this.officeSelected.officeId, this.officeSelected).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Office updated\");\r\n this.ngOnInit();\r\n this.updateInfo = resp;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n getNotices() {\r\n this.officesUsersRolesService.getNotices(0, 0, 0).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.listOfNotice = resp.notices;\r\n }\r\n });\r\n }\r\n addClientDialog(): void {\r\n\r\n this.clientsContactsService.getSourceType(0, '0', 1).subscribe(resp => {\r\n\r\n this.listOfSourceTypes = resp;\r\n\r\n\r\n this.officesUsersRolesService.getOffices(0, '0', 1, 1).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfOffices = resp;\r\n\r\n this.clientsContactsService.getPaymentType(0, 0, 1).subscribe(resp => {\r\n this.paymentTypes = resp;\r\n\r\n\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n this.taxCodes = resp;\r\n\r\n\r\n let dialogRef = this.dialog.open(AddClientDialogComponent, {\r\n width: '1000px',\r\n data: {\r\n sourceData: this.listOfSourceTypes,\r\n officeData: this.listOfOffices,\r\n officeSelected: this.officeSelected,\r\n paymentTypes: this.paymentTypes,\r\n taxCode: this.taxCodes\r\n }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n this.ngOnInit();\r\n });\r\n\r\n });\r\n\r\n });\r\n\r\n }\r\n });\r\n });\r\n }\r\n\r\n addUserDialog(): void {\r\n\r\n\r\n this.officesUsersRolesService.getRoles(0, '0', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfRoles = resp;\r\n\r\n let dialogRef = this.dialog.open(AddUserDialogComponent, {\r\n width: '1000px',\r\n data: { roleDataPassed: this.listOfRoles, office: this.officeSelected }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log('The dialog was closed');\r\n this.selectedTab = 1;\r\n console.log(result);\r\n this.usersComponent.triggerUpdate();\r\n });\r\n }\r\n });\r\n }\r\n addTemplateDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddTemplateDialogComponent, {\r\n width: '1000px',\r\n data: { officeId: this.officeId, clientId: 0, isGlobal: true, clientName: '' }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.templatesComponent.getTemplates(0, this.officeId, 0, 0, 1);\r\n //this.router.navigate(['/offices', this.officeId, 'tab', 2]);\r\n this.selectedTab = 2;\r\n console.log(result);\r\n });\r\n\r\n }\r\n\r\n addNoticeDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddNoticeDialogComponent, {\r\n width: '1000px',\r\n data: { officeId: this.officeId }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.noticesComponent.getNotices(this.officeId, 1);\r\n this.selectedTab = 3;\r\n console.log(this.selectedTab);\r\n this.ngOnInit();\r\n });\r\n\r\n }\r\n\r\n addInvoiceProductDialog(): void {\r\n\r\n let dialogRef = this.dialog.open(AddInvoiceProductDialogComponent, {\r\n width: '1000px',\r\n data: { office: this.officeSelected }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.selectedTab = 4;\r\n console.log(result);\r\n this.invoicingProductsComponent.getInvoicingProducts(0, 1, 1);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n\r\n} \r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { InvoiceData, Invoices, Invoice, AutocompleteInvoice } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-invoicing',\r\n templateUrl: './invoicing.component.html',\r\n styleUrls: ['./invoicing.component.css'],\r\n providers: [ClientsContactsService, OfficesUsersRolesService, UserSessionService, InvoicingService]\r\n})\r\n\r\nexport class InvoicingComponent implements OnInit {\r\n length = 100;\r\n pageSize = 10;\r\n pageSizeOptions = [5, 10, 25, 100];\r\n filteredUsers: ClientsAutocomplete[];\r\n selectedOption: ClientAutocomplete;\r\n filteredInvoices: Invoice[] = [];\r\n listOfInvoicesDraft: Invoice[] = [];\r\n listOfInvoicesEmail: Invoice[] = [];\r\n listOfInvoicesSage: Invoice[] = [];\r\n listOfInvoicesCompleted: Invoice[] = [];\r\n noOfInvoicesDraft: number = 0;\r\n noOfInvoicesEmail: number = 0;\r\n noOfInvoicesSage: number = 0;\r\n noOfInvoicesCompleted: number = 0;\r\n options = [];\r\n selectedClient: Client;\r\n sourceTypes: SourceTypes[];\r\n paymentTypes: PaymentTypes[];\r\n taxCodes: TaxCodes[];\r\n listOfSourceTypes: SourceTypes[];\r\n listOfOffices: OfficeData;\r\n isActiveFilter: number = 1;\r\n isOutOfHoursFilter: number = 0;\r\n isTrialFilter: number = 0;\r\n isMasterFilter: number = 0;\r\n isVatFilter: number = 0;\r\n paymentFilter: number = 0;\r\n sourceFilter: number = 0;\r\n taxFilter: number = 0;\r\n officeSelected: any;\r\n paymentTypes2: PaymentTypes[];\r\n taxCodes2: TaxCodes[];\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n sortIdDraft: number = 3;\r\n sortDirDraft: string = 'DESC';\r\n sortIdEmail: number = 3;\r\n sortDirEmail: string = 'DESC';\r\n sortIdSage: number = 3;\r\n sortDirSage: string = 'DESC';\r\n sortIdCompleted: number = 3;\r\n sortDirCompleted: string = 'DESC';\r\n pageNoDraft: number = 0;\r\n pageNoEmail: number = 0;\r\n pageNoSage: number = 0;\r\n pageNoCompleted: number = 0;\r\n rForm: FormGroup;\r\n invoiceId: number = 0;\r\n loadingCompletedInvoices: boolean = true;\r\n\r\n\r\n activeStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n hourStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n trialStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n masterStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n vatStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Yes' },\r\n { value: 2, viewValue: 'No' }\r\n ];\r\n paymentStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n sourceStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n taxStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n\r\n // MdPaginator Output\r\n pageEvent: PageEvent;\r\n\r\n setPageSizeOptions(setPageSizeOptionsInput: string) {\r\n this.pageSizeOptions = setPageSizeOptionsInput.split(',').map(str => +str);\r\n }\r\n\r\n @Input() officeFilterId: Number = 0;\r\n listOfClients: Clients[];\r\n totalNoOfClients: any;\r\n constructor(private route: ActivatedRoute, public clientsContactsService: ClientsContactsService, public invoicingService: InvoicingService, public userSessionService: UserSessionService, public router: Router, public officesUsersRolesService: OfficesUsersRolesService, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n this.rForm = fb.group({\r\n 'invoiceAutocomplete': [null],\r\n });\r\n\r\n this.rForm.controls['invoiceAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['invoiceAutocomplete'].value);\r\n if (this.rForm.controls['invoiceAutocomplete'].value === '' || typeof this.rForm.controls['invoiceAutocomplete'].value != 'string') {\r\n return this.filteredInvoices = null;\r\n } else {\r\n this.invoicingService.searchInvoice(this.rForm.controls['invoiceAutocomplete'].value)\r\n .subscribe(res => {\r\n return this.filteredInvoices = res.invoices\r\n })\r\n }\r\n });\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n }\r\n\r\n myControl: FormControl = new FormControl();\r\n contactControl: FormControl = new FormControl();\r\n filteredOptions: Observable;\r\n\r\n filter(clientName: string): ClientAutocomplete[] {\r\n\r\n this.clientsContactsService.getClientsAutocomplete(clientName, 0, this.officeId, 0, 0).subscribe(resp => {\r\n this.options = [];\r\n //this.filteredUsers = resp.userDetails.users;\r\n\r\n resp.clients.forEach((clients) => {\r\n\r\n let client = new ClientAutocomplete();\r\n client = clients;\r\n this.options.push(client);\r\n });\r\n\r\n console.log(\"here \" + clientName);\r\n });\r\n\r\n return this.options.filter(option =>\r\n option.clientName.toLowerCase().indexOf(clientName.toLowerCase()) === 0);\r\n\r\n }\r\n\r\n displayFn(user: ClientAutocomplete): string {\r\n this.selectedOption = user;\r\n console.log(this.selectedOption);\r\n return user ? user.clientName : '';\r\n }\r\n displayFnInvoices(invoice: Invoice): any {\r\n return invoice ? invoice.invoiceNo : invoice;\r\n }\r\n\r\n changeDirDraft(sortIdDraft) {\r\n if (this.sortDirDraft === 'ASC') {\r\n this.sortDirDraft = 'DESC';\r\n this.sortIdDraft = sortIdDraft;\r\n this.getDraftInvoices(this.sortIdDraft, this.sortDirDraft, this.pageNoDraft);\r\n } else {\r\n this.sortDirDraft = 'ASC';\r\n this.sortIdDraft = sortIdDraft;\r\n this.getDraftInvoices(this.sortIdDraft, this.sortDirDraft, this.pageNoDraft);\r\n }\r\n }\r\n\r\n changeDirEmail(sortIdEmail) {\r\n if (this.sortDirEmail === 'ASC') {\r\n this.sortDirEmail = 'DESC';\r\n this.sortIdEmail = sortIdEmail;\r\n this.getToBeEmailedInvoices(this.sortIdEmail, this.sortDirEmail, this.pageNoEmail);\r\n } else {\r\n this.sortDirEmail = 'ASC';\r\n this.sortIdEmail = sortIdEmail;\r\n this.getToBeEmailedInvoices(this.sortIdEmail, this.sortDirEmail, this.pageNoEmail);\r\n }\r\n }\r\n changeDirSage(sortIdSage) {\r\n if (this.sortDirSage === 'ASC') {\r\n this.sortDirSage = 'DESC';\r\n this.sortIdSage = sortIdSage;\r\n this.getSageInvoices(this.sortIdSage, this.sortDirSage, this.pageNoSage);\r\n } else {\r\n this.sortDirSage = 'ASC';\r\n this.sortIdSage = sortIdSage;\r\n this.getSageInvoices(this.sortIdSage, this.sortDirSage, this.pageNoSage);\r\n }\r\n }\r\n changeDirCompleted(sortIdCompleted) {\r\n if (this.sortDirCompleted === 'ASC') {\r\n this.sortDirCompleted = 'DESC';\r\n this.sortIdCompleted = sortIdCompleted;\r\n this.getCompletedInvoices(this.sortIdCompleted, this.sortDirCompleted, this.pageNoCompleted);\r\n } else {\r\n this.sortDirCompleted = 'ASC';\r\n this.sortIdCompleted = sortIdCompleted;\r\n this.getCompletedInvoices(this.sortIdCompleted, this.sortDirCompleted, this.pageNoCompleted);\r\n }\r\n }\r\n ngOnInit() {\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n this.getOffice(this.officeId);\r\n this.paymentTypes = new Array();\r\n this.getDraftInvoices(this.sortIdDraft, this.sortDirDraft, this.pageNoDraft);\r\n this.getToBeEmailedInvoices(this.sortIdEmail, this.sortDirEmail, this.pageNoEmail);\r\n this.getSageInvoices(this.sortIdSage, this.sortDirSage, this.pageNoSage);\r\n this.getCompletedInvoices(this.sortIdSage, this.sortDirSage, this.pageNoCompleted);\r\n\r\n this.filteredOptions = this.myControl.valueChanges\r\n .startWith(null)\r\n .map(user => user && typeof user === 'object' ? user.userName : user)\r\n .map(userName => userName ? this.filter(userName) : this.options.slice());\r\n\r\n }\r\n\r\n setPageDraft(event) {\r\n this.pageNoDraft = event.pageIndex;\r\n this.getDraftInvoices(this.sortIdDraft, this.sortDirDraft, event.pageIndex + 1);\r\n }\r\n\r\n setPageEmail(event) {\r\n this.pageNoEmail = event.pageIndex;\r\n this.getToBeEmailedInvoices(this.sortIdDraft, this.sortDirDraft, event.pageIndex + 1);\r\n }\r\n \r\n setPageSage(event) {\r\n this.pageNoSage = event.pageIndex;\r\n this.getSageInvoices(this.sortIdDraft, this.sortDirDraft, event.pageIndex + 1);\r\n }\r\n setPageCompleted(event) {\r\n this.pageNoCompleted = event.pageIndex;\r\n this.getCompletedInvoices(this.sortIdDraft, this.sortDirDraft, event.pageIndex + 1);\r\n }\r\n\r\n downloadAll(){\r\n\r\n this.invoicingService.downloadAllInvoices().subscribe(resp => {\r\n\r\n this.downloadPDFFile(resp);\r\n\r\n });\r\n\r\n }\r\n\r\n getDraftInvoices(sortById: number, SortDir: any, PageNo: number) {\r\n\r\n this.invoicingService.getInvoices(0, 0, this.officeId, 0, 1, 0, sortById, SortDir, PageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfInvoicesDraft = resp.invoices.invoices;\r\n this.noOfInvoicesDraft = resp.invoices.totalCount;\r\n }\r\n\r\n });\r\n }\r\n\r\n getToBeEmailedInvoices(sortById: number, SortDir: any, pageNo: number) {\r\n\r\n this.invoicingService.getInvoices(0, 0, this.officeId, 0, 2, 0, sortById, SortDir, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfInvoicesEmail = resp.invoices.invoices;\r\n this.noOfInvoicesEmail = resp.invoices.totalCount;\r\n }\r\n\r\n });\r\n }\r\n getSageInvoices(sortById: number, SortDir: any, pageNo: number) {\r\n\r\n this.invoicingService.getInvoices(0, 0, this.officeId, 0, 3, 0, sortById, SortDir, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.listOfInvoicesSage = resp.invoices.invoices;\r\n this.noOfInvoicesSage = resp.invoices.totalCount;\r\n }\r\n });\r\n }\r\n\r\n getCompletedInvoices(sortById: number, SortDir: any, pageNo: number) {\r\n this.loadingCompletedInvoices = true;\r\n this.invoicingService.getInvoices(0, 0, this.officeId, 0, 4, 0, sortById, SortDir, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n this.loadingCompletedInvoices = false;\r\n } else {\r\n this.listOfInvoicesCompleted = resp.invoices.invoices;\r\n this.noOfInvoicesCompleted = resp.invoices.totalCount;\r\n this.loadingCompletedInvoices = false;\r\n }\r\n });\r\n }\r\n\r\n\r\n tabChanged = (tabChangeEvent: MatTabChangeEvent): void => {\r\n\r\n if (tabChangeEvent.index === 3) {\r\n this.getCompletedInvoices(this.sortIdSage, this.sortDirSage, 1);\r\n }\r\n\r\n }\r\n\r\n\r\n getOffice(officeId: number) {\r\n this.officesUsersRolesService.getOffices(officeId, '0', 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n this.officeSelected = resp.officeDetails.offices[0];\r\n }\r\n \r\n });\r\n\r\n }\r\n\r\n goToInvoice(invoice) {\r\n if (invoice.invoiceId > 0) {\r\n this.router.navigate(['/invoicing/invoice/' + invoice.invoiceId]);\r\n }\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n sageExport() {\r\n\r\n this.invoicingService.exportToSage(0).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n })\r\n }\r\n\r\n completeAll(){\r\n\r\n this.invoicingService.completeInvoice(0).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Invoices completed\");\r\n this.getSageInvoices(this.sortIdSage, this.sortDirSage, 1);\r\n }\r\n\r\n })\r\n\r\n }\r\n\r\n downloadFile(data: any) {\r\n\r\n let parsedResponse = data;\r\n let blob = new Blob([parsedResponse], { type: 'text/csv' });\r\n let url = window.URL.createObjectURL(blob);\r\n\r\n if (navigator.msSaveOrOpenBlob) {\r\n navigator.msSaveBlob(blob, 'data.csv');\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'data.csv';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n window.URL.revokeObjectURL(url);\r\n\r\n }\r\n\r\n downloadPDFFile(data: any) {\r\n \r\n let parsedResponse = data;\r\n let blob = new Blob([parsedResponse], { type: 'application/pdf' });\r\n let url = window.URL.createObjectURL(blob);\r\n\r\n if (navigator.msSaveOrOpenBlob) {\r\n navigator.msSaveBlob(blob, 'data.pdf');\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'data.pdf';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n window.URL.revokeObjectURL(url);\r\n\r\n }\r\n}\r\n","export default \"
\\r\\n\\r\\n \\r\\n

Update Reference User

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtaW52b2ljZS1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","import { Component, OnInit, Inject } from '@angular/core';\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { Observable } from 'rxjs';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport * as moment from 'moment';\n\nimport { MessagesService } from '../../services/messages.service';\n\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\nimport { MessageSend, NewMessage, MessageData, MessageDetails, Messages, MessageEmailReport } from '../../models/messageData';\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../../models/deliveryData';\n\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\nimport { CallerData, Callers } from '../../models/callerData';\n\n@Component({\n selector: 'app-email-message-report-dialog',\n templateUrl: './email-message-report-dialog.component.html',\n styleUrls: ['./email-message-report-dialog.component.css'],\n providers: [MessagesService, ClientsContactsService]\n})\nexport class EmailMessageReportDialogComponent implements OnInit {\n rForm: FormGroup;\n messageEmailReportData: MessageEmailReport;\n noOfMessages: number;\n\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public messagesService: MessagesService, public snackBar: MatSnackBar) {\n\n this.rForm = fb.group({\n\n 'message': [null],\n\n });\n }\n\n openSnackBar(message: string) {\n this.snackBar.open(message, \"close\", {\n duration: 5000,\n });\n }\n\n ngOnInit() {\n\n this.messageEmailReportData = new MessageEmailReport();\n this.noOfMessages = this.data.noOfMessages;\n setTimeout(() => {\n if(this.noOfMessages > 500){\n\n this.openSnackBar(\"Email reports can only send up to 500 records, please reduce the amount of messages in the search.\");\n }\n },500);\n \nconsole.log(this.data.reportData);\n this.messageEmailReportData = this.data.reportData;\n }\n\n\n sendReport(form:any){\n\n this.messagesService.endOfDeliveryForClient(this.messageEmailReportData).subscribe(resp => {\n\n if (resp.errors.length == 0) {\n this.openSnackBar(\"Email report sent\");\n this.dialogRef.close();\n } else {\n this.openSnackBar(resp.errors[0].error);\n this.dialogRef.close();\n }\n });\n }\n\n}\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtY2xpZW50LWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n account_circle\\r\\n

My account

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n \\r\\n Change Password?\\r\\n \\r\\n\\r\\n

\\r\\n Password should be 8 characters long or greater with at least one capital, one lowercase and one number.\\r\\n

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\";","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable} from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { ClientData } from '../../models/clientData';\r\nimport { ContactData, ContactDetails, Contacts, Contact } from '../../models/contactData';\r\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../../models/deliveryData';\r\n\r\n@Component({\r\n selector: 'app-contacts-detail',\r\n templateUrl: './contacts-detail.component.html',\r\n styleUrls: ['./contacts-detail.component.css'],\r\n providers:[ClientsContactsService, UserSessionService]\r\n})\r\nexport class ContactsDetailComponent implements OnInit {\r\n\r\n selectedContact: Contact;\r\n rForm: FormGroup;\r\n listOfDeliveryTypes: any;\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n primaryOwnerId: number;\r\n clientData: ClientData;\r\n\r\n constructor(public clientsContactsService: ClientsContactsService, public userSessionService: UserSessionService, private router: Router, private route: ActivatedRoute, private fb:FormBuilder, public snackBar: MatSnackBar, public dialog: MatDialog) { \r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n \r\n this.rForm = fb.group({\r\n 'title': [null],\r\n 'firstName': [null, Validators.required],\r\n 'surname': [null],\r\n 'deliveryTypeId': [null, Validators.required],\r\n 'emailAddress1': [''],\r\n 'emailAddress2': [''],\r\n 'faxNo': [null],\r\n 'isActive': [true],\r\n 'isDefaultContact': [false],\r\n 'isEmailAddress1Eod': [false],\r\n 'isEmailAddress1Mod': [false],\r\n 'isEmailAddress1Private': [false],\r\n 'isEmailAddress2Eod': [false],\r\n 'isEmailAddress2Mod': [false],\r\n 'isEmailAddress2Private': [false],\r\n 'isFaxNoPrivate': [false],\r\n 'position': [null],\r\n 'isMobileNoPrivate': [false],\r\n 'isPrinciple': [false],\r\n 'isPhoneNoPrivate': [false],\r\n 'mobileNo': [null],\r\n 'phoneNo': [null],\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.clientData = new ClientData();\r\n this.selectedContact = new Contact();\r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n let id = +this.route.snapshot.paramMap.get('id');\r\n this.selectedContact = new Contact();\r\n this.getContacts(id);\r\n\r\n this.getDeliveryTypes();\r\n }\r\n\r\n getClient(){\r\n\r\n this.clientsContactsService.getClients(this.selectedContact.clientId, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 'ASC', 1 ).subscribe(resp => {\r\n\r\n\r\n resp.clientDetails.clients[0].offices.forEach((office) => {\r\n \r\n if(office.isPrimaryOwner){\r\n this.primaryOwnerId = office.officeId;\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n private getContacts(contactId: number) {\r\n this.clientsContactsService.getContacts(contactId, '0', 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n\r\n resp.contactDetails.contacts.forEach((contact) => {\r\n //console.log(offices);\r\n \r\n this.selectedContact = contact;\r\n\r\n this.getClient();\r\n \r\n });\r\n });\r\n }\r\n\r\n private getDeliveryTypes() {\r\n this.clientsContactsService.getDeliveryType(0, 0, 0).subscribe(resp => {\r\n\r\n\r\n this.listOfDeliveryTypes = resp.deliveryTypes;\r\n });\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 25000,\r\n });\r\n }\r\n\r\n updateContact(post) { \r\n //console.log(post); \r\n\r\n this.clientsContactsService.updateContact(this.selectedContact.contactId, this.selectedContact).subscribe(resp => {\r\n \r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.openSnackBar(\"Contact updated\");\r\n this.ngOnInit();\r\n }\r\n\r\n \r\n //console.log(this.updateInfo);\r\n\r\n });\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\nimport * as moment from 'moment';\r\n\r\nimport { MessageSend, NewMessage, MessageData, MessageDetails, Messages, MessageSearch, MessageSearchCSV, MessageEmailReport } from '../../models/messageData';\r\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../../models/deliveryData';\r\nimport { Users, User } from '../../models/userData';\r\n\r\nimport { MessagesService } from '../../services/messages.service';\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { ViewMessageDialogComponent } from '../../components/view-message-dialog/view-message-dialog.component';\r\nimport { EmailMessageReportDialogComponent } from '../../components/email-message-report-dialog/email-message-report-dialog.component';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-outbox',\r\n templateUrl: './outbox.component.html',\r\n styleUrls: ['./outbox.component.css'],\r\n providers: [MessagesService, ClientsContactsService, OfficesUsersRolesService, UserSessionService]\r\n})\r\nexport class OutboxComponent implements OnInit {\r\n listOfMessages: MessageData;\r\n csvMessages: any;\r\n noOfMessages: number;\r\n filterByDate: boolean = true;\r\n movementFromDateFinal: any;\r\n movementToDateFinal: any;\r\n fromDate: any = '0';\r\n toDate: any = '0';\r\n deliveryTypeFilter: number = 0;\r\n deliveryTypes: DeliveryTypes[];\r\n deliveryStates = [{ value: 0, viewValue: 'Any' }];\r\n isActiveFilter: number = 1;\r\n messageSearchData: MessageSearch;\r\n messageSearchCSV: MessageSearchCSV;\r\n MessageEmailReportData: MessageEmailReport;\r\n\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n\r\n statusStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 200, viewValue: 'Success' },\r\n { value: 400, viewValue: 'Failed' }\r\n ];\r\n pageEvent: PageEvent;\r\n sortId: number = 1;\r\n sortDir: string = 'DESC';\r\n filteredClients: ClientAutocomplete[] = [];\r\n filteredContact: ContactAutocomplete[] = [];\r\n filteredUsers: User[] = [];\r\n statusId: number = 0;\r\n userId: number = 0;\r\n clientId: number = 0;\r\n contactId: number = 0;\r\n messageId: number = 0;\r\n selectedUser: number = 0;\r\n selectedClient: number = 0;\r\n selectedContact: number = 0;\r\n rForm: FormGroup;\r\n loading: boolean = true;\r\n pageNo: number = 0;\r\n messageContent: any = null;\r\n messageContentFinal: any = null;\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n callerName: any = null;\r\n callerNameFinal: any = null;\r\n callerPhone: any = null;\r\n callerPhoneFinal: any = null;\r\n email: any = null;\r\n emailFinal: any = null;\r\n reference: any = null;\r\n referenceFinal: any = null;\r\n company: any = null;\r\n companyFinal: any = null;\r\n listOfContacts: Contact[] = [];\r\n anyContact: Contact;\r\n\r\n\r\n constructor(public messagesService: MessagesService, public officesUsersRolesService: OfficesUsersRolesService, public userSessionService: UserSessionService, public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n \r\n this.rForm = fb.group({\r\n 'clientAutocomplete': [null],\r\n 'contactAutocomplete': [null],\r\n 'userAutocomplete': [null],\r\n 'deliveryTypeFilter': [null],\r\n 'statusId': [null],\r\n 'messageContent': [null],\r\n 'fromDate': [null],\r\n 'toDate': [null],\r\n 'callerName': [null],\r\n 'callerPhone': [null],\r\n 'email': [null],\r\n 'reference': [null],\r\n 'company': [null],\r\n 'filterByDate': [null],\r\n 'contactId': new FormControl({ value: 0, disabled: false }, Validators.required),\r\n });\r\n\r\n\r\n this.rForm.controls['clientAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['clientAutocomplete'].value);\r\n if (this.rForm.controls['clientAutocomplete'].value === '' || typeof this.rForm.controls['clientAutocomplete'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientAutocomplete'].value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n\r\n });\r\n\r\n this.rForm.controls['contactAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['contactAutocomplete'].value);\r\n if (this.rForm.controls['contactAutocomplete'].value === '' || typeof this.rForm.controls['contactAutocomplete'].value != 'string') {\r\n return this.filteredContact = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.rForm.controls['contactAutocomplete'].value, 0, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredContact = res.contacts\r\n })\r\n }\r\n\r\n });\r\n\r\n this.rForm.controls['userAutocomplete'].valueChanges\r\n .subscribe(name => {\r\n console.log(this.rForm.controls['userAutocomplete'].value);\r\n if (this.rForm.controls['userAutocomplete'].value === '' || typeof this.rForm.controls['userAutocomplete'].value != 'string') {\r\n return this.filteredUsers = null;\r\n } else {\r\n this.officesUsersRolesService.getUsers(0, this.rForm.controls['userAutocomplete'].value, this.officeId, 0, 1, 'ASC', 1)\r\n .subscribe(res => {\r\n return this.filteredUsers = res.userDetails.users\r\n })\r\n }\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.anyContact = new Contact();\r\n\r\n\r\n\r\n this.messageSearchCSV = new MessageSearchCSV();\r\n this.messageSearchData = new MessageSearch();\r\n this.MessageEmailReportData = new MessageEmailReport();\r\n \r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n\r\n this.fromDate = moment().subtract(1, 'week').toDate();\r\n this.toDate = moment().toDate();\r\n\r\n this.getMessages(this.messageId, this.userId, this.contactId, this.clientId, this.callerName, this.callerPhone, this.email, this.reference, this.company, this.statusId, this.deliveryTypeFilter, this.messageContent, this.fromDate, this.toDate, this.sortId, this.sortDir, 1);\r\n this.getDeliveryTypes();\r\n }\r\n\r\n setPage(event) {\r\n this.pageNo = event.pageIndex;\r\n this.getMessages(this.messageId, this.userId, this.contactId, this.clientId, this.callerName, this.callerPhone, this.email, this.reference, this.company, this.statusId, this.deliveryTypeFilter, this.messageContent, this.fromDate, this.toDate, this.sortId, this.sortDir, event.pageIndex + 1);\r\n }\r\n\r\n public setRange(dateRangeChecked) {\r\n console.log(dateRangeChecked);\r\n\r\n }\r\n openSnackBarError(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n\r\n });\r\n }\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n displayFnUsers(user: User): any {\r\n return user ? user.userName : user;\r\n }\r\n\r\n changeDir(sortId) {\r\n if (this.sortDir === 'ASC') {\r\n this.sortDir = 'DESC';\r\n this.sortId = sortId;\r\n this.getMessages(this.messageId, this.userId, this.contactId, this.clientId, this.callerName, this.email, this.reference, this.company, this.statusId, this.deliveryTypeFilter, this.callerPhone, this.messageContent, this.fromDate, this.toDate, this.sortId, this.sortDir, this.pageNo)\r\n } else {\r\n this.sortDir = 'ASC';\r\n this.sortId = sortId;\r\n this.getMessages(this.messageId, this.userId, this.contactId, this.clientId, this.callerName, this.email, this.reference, this.company, this.statusId, this.deliveryTypeFilter, this.callerPhone, this.messageContent, this.fromDate, this.toDate, this.sortId, this.sortDir, this.pageNo)\r\n }\r\n\r\n }\r\n\r\n private getDeliveryTypes() {\r\n this.clientsContactsService.getDeliveryType(0, 0, 1).subscribe(resp => {\r\n this.deliveryTypes = resp.deliveryTypes;\r\n this.deliveryTypes.forEach((type, i) => {\r\n\r\n this.deliveryStates.push({ value: i + 1, viewValue: type.name });\r\n\r\n });\r\n });\r\n\r\n }\r\n reset() {\r\n this.rForm.reset();\r\n this.statusId = 0;\r\n this.userId = 0;\r\n this.clientId = 0;\r\n this.contactId = 0;\r\n this.messageId = 0;\r\n this.selectedUser = 0;\r\n this.selectedClient = 0;\r\n this.selectedContact = 0;\r\n this.filterByDate = false;\r\n this.messageContent, this.messageContentFinal = '';\r\n this.fromDate = moment().toDate();\r\n this.toDate = moment().toDate();\r\n this.deliveryTypeFilter = 0;\r\n this.rForm.controls['deliveryTypeFilter'].setValue(0);\r\n this.rForm.controls['statusId'].setValue(0);\r\n this.callerName, this.callerNameFinal = '';\r\n this.callerPhone, this.callerPhoneFinal = '';\r\n this.email, this.emailFinal = '';\r\n this.reference, this.referenceFinal = '';\r\n this.company, this.companyFinal = '';\r\n\r\n\r\n this.getMessages(this.messageId, this.userId, this.contactId, this.clientId, this.callerName, this.callerPhone, this.email, this.reference, this.company, this.statusId, this.deliveryTypeFilter, this.messageContent, this.fromDate, this.toDate, this.sortId, this.sortDir, 1);\r\n }\r\n public getMessages(messageId: number, userId: number, contactId: number, clientId: number, callerName: any, callerPhone: any, email:any, reference:any, company:any, statusId: number, deliveryTypeId: number, messageContent: any, fromDate: string, toDate: string, sortId: number, sortDir: string, pageNo: number) {\r\n this.loading = true;\r\n if (this.filterByDate) {\r\n\r\n this.movementFromDateFinal = moment(this.fromDate).format('YYYY-MM-DD');\r\n this.movementToDateFinal = moment(this.toDate).format('YYYY-MM-DD');\r\n } else {\r\n this.movementFromDateFinal = '0';\r\n this.movementToDateFinal = '0';\r\n }\r\n console.log(messageContent);\r\n if (messageContent === '' || messageContent === null) {\r\n\r\n this.messageContentFinal = 0;\r\n } else {\r\n\r\n this.messageContentFinal = messageContent;\r\n }\r\n if (callerName === '' || callerName === null) {\r\n\r\n this.callerNameFinal = 0;\r\n } else {\r\n\r\n this.callerNameFinal = callerName;\r\n }\r\n if (callerPhone === '' || callerPhone === null) {\r\n\r\n this.callerPhoneFinal = 0;\r\n } else {\r\n\r\n this.callerPhoneFinal = callerPhone;\r\n }\r\n if (email === '' || email === null) {\r\n\r\n this.emailFinal = 0;\r\n } else {\r\n\r\n this.emailFinal = email;\r\n }\r\n if (reference === '' || reference === null) {\r\n\r\n this.referenceFinal = 0;\r\n } else {\r\n\r\n this.referenceFinal = reference;\r\n }\r\n if (company === '' || company === null) {\r\n\r\n this.companyFinal = 0;\r\n } else {\r\n\r\n this.companyFinal = company;\r\n }\r\n\r\n this.messageSearchData.callerName = this.callerNameFinal;\r\n this.messageSearchData.clientId = this.selectedClient;\r\n this.messageSearchData.company = this.companyFinal;\r\n this.messageSearchData.contactId = this.selectedContact;\r\n this.messageSearchData.deliveryTypeId = this.deliveryTypeFilter;\r\n this.messageSearchData.email = this.emailFinal;\r\n this.messageSearchData.fromCreatedDate = this.movementFromDateFinal;\r\n this.messageSearchData.messageId = this.messageId;\r\n this.messageSearchData.messageSearch = this.messageContentFinal;\r\n this.messageSearchData.pageNo = pageNo;\r\n this.messageSearchData.phone = this.callerPhoneFinal;\r\n this.messageSearchData.reference = this.referenceFinal;\r\n this.messageSearchData.sortDir = this.sortDir;\r\n this.messageSearchData.sortId = this.sortId;\r\n this.messageSearchData.statusId = this.statusId;\r\n this.messageSearchData.toCreatedDate = this.movementToDateFinal;\r\n this.messageSearchData.userId = this.selectedUser;\r\n\r\n this.messagesService.getMessages(this.messageSearchData).subscribe(resp => {\r\n this.loading = false;\r\n if (resp.errors.length == 0) {\r\n this.listOfMessages = resp;\r\n this.noOfMessages = resp.messageDetails.totalCount;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n });\r\n\r\n }\r\n loadingCSV: boolean = false;\r\n public getMessagesCSV(messageContent: any, callerName: any, callerPhone:any, email:any, reference: any, company:any, messageId: number, userId:any, contact:any, clientId:any, statusId: number, deliveryTypeId: number, isActive: number, sortId: number, sortDir: string) {\r\n this.loadingCSV = true;\r\n\r\n if (this.filterByDate) {\r\n\r\n this.movementFromDateFinal = moment(this.fromDate).format('YYYY-MM-DD');\r\n this.movementToDateFinal = moment(this.toDate).format('YYYY-MM-DD');\r\n } else {\r\n this.movementFromDateFinal = '0';\r\n this.movementToDateFinal = '0';\r\n }\r\n console.log(this.movementToDateFinal);\r\n if (messageContent === '' || messageContent === null) {\r\n\r\n this.messageContentFinal = 0;\r\n } else {\r\n\r\n this.messageContentFinal = messageContent;\r\n }\r\n if (callerName === '' || callerName === null) {\r\n\r\n this.callerNameFinal = 0;\r\n } else {\r\n\r\n this.callerNameFinal = callerName;\r\n }\r\n if (callerPhone === '' || callerPhone === null) {\r\n\r\n this.callerPhoneFinal = 0;\r\n } else {\r\n\r\n this.callerPhoneFinal = callerPhone;\r\n }\r\n if (email === '' || email === null) {\r\n\r\n this.emailFinal = 0;\r\n } else {\r\n\r\n this.emailFinal = email;\r\n }\r\n if (reference === '' || reference === null) {\r\n\r\n this.referenceFinal = 0;\r\n } else {\r\n\r\n this.referenceFinal = reference;\r\n }\r\n if (company === '' || company === null) {\r\n\r\n this.companyFinal = 0;\r\n } else {\r\n\r\n this.companyFinal = company;\r\n }\r\n\r\n this.messageSearchCSV.callerName = this.callerNameFinal;\r\n this.messageSearchCSV.clientId = this.selectedClient;\r\n this.messageSearchCSV.company = this.companyFinal;\r\n this.messageSearchCSV.contactId = this.selectedContact;\r\n this.messageSearchCSV.deliveryTypeId = this.deliveryTypeFilter;\r\n this.messageSearchCSV.email = this.emailFinal;\r\n this.messageSearchCSV.fromCreatedDate = this.movementFromDateFinal;\r\n this.messageSearchCSV.messageId = this.messageId;\r\n this.messageSearchCSV.messageSearch = this.messageContentFinal;\r\n this.messageSearchCSV.phone = this.callerPhoneFinal;\r\n this.messageSearchCSV.reference = this.referenceFinal;\r\n this.messageSearchCSV.sortDir = this.sortDir;\r\n this.messageSearchCSV.sortId = this.sortId;\r\n this.messageSearchCSV.statusId = this.statusId;\r\n this.messageSearchCSV.toCreatedDate = this.movementToDateFinal;\r\n this.messageSearchCSV.userId = this.selectedUser;\r\n\r\n this.messagesService.getMessagesCSV(this.messageSearchCSV).subscribe(resp => {\r\n\r\n this.downloadFile(resp);\r\n\r\n });\r\n\r\n }\r\n setUser(user) {\r\n if (user) {\r\n if (user.userId > 0) {\r\n this.selectedUser = user.userId;\r\n this.MessageEmailReportData.userId = user.userId;\r\n } else {\r\n this.selectedUser = 0\r\n this.MessageEmailReportData.userId = 0\r\n }\r\n }else{\r\n this.selectedUser = 0;\r\n this.MessageEmailReportData.userId = 0\r\n }\r\n }\r\n setContact(contact) {\r\n console.log(contact.value.contactId);\r\n if (contact) {\r\n if (contact.value.contactId > 0) {\r\n this.selectedContact = contact.value.contactId;\r\n this.MessageEmailReportData.contactId = contact.value.contactId;\r\n } else {\r\n this.selectedContact = 0\r\n this.MessageEmailReportData.contactId = 0\r\n }\r\n }else{\r\n this.selectedContact = 0;\r\n this.MessageEmailReportData.contactId = 0\r\n }\r\n }\r\n setClient(client) {\r\n\r\n const contactField = this.rForm.get('contactId');\r\n console.log(client);\r\n if (client) {\r\n if (client.clientId > 0) {\r\n this.selectedClient = client.clientId;\r\n this.MessageEmailReportData.clientId = client.clientId;\r\n \r\n this.clientsContactsService.getContacts(0, 0, client.clientId, 1, 0, 0, 1, 'ASC', 0).subscribe(resp => {\r\n\r\n this.listOfContacts = [];\r\n\r\n this.anyContact.clientId = 0;\r\n this.anyContact.contactId = 0;\r\n this.anyContact.fullName = 'Any';\r\n \r\n \r\n this.listOfContacts.push( this.anyContact );\r\n \r\n \r\n this.listOfContacts = this.listOfContacts.concat(resp.contactDetails.contacts);\r\n console.log(this.listOfContacts[2])\r\n this.rForm.controls['contactId'].setValue(this.listOfContacts[0]);\r\n this.selectedContact = 0;\r\n this.MessageEmailReportData.contactId = 0;\r\n //this.setContact({value: { contactId: 0}})\r\n //contactField.patchValue({contactId: 0})\r\n contactField.enable();\r\n \r\n })\r\n\r\n } else {\r\n this.selectedClient = 0\r\n this.MessageEmailReportData.clientId = 0\r\n }\r\n }else{\r\n contactField.disable();\r\n this.selectedClient = 0\r\n this.MessageEmailReportData.clientId = 0\r\n }\r\n }\r\n downloadFile(data: any) {\r\n\r\n let parsedResponse = data;\r\n let blob = new Blob([parsedResponse], { type: 'text/csv' });\r\n let url = window.URL.createObjectURL(blob);\r\n\r\n if (navigator.msSaveOrOpenBlob) {\r\n navigator.msSaveBlob(blob, 'messages.csv');\r\n this.loadingCSV = false;\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'messages.csv';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n window.URL.revokeObjectURL(url);\r\n this.loadingCSV = false;\r\n }\r\n\r\n viewMessagetDialog(message): void {\r\n\r\n let dialogRef = this.dialog.open(ViewMessageDialogComponent, {\r\n width: '80%',\r\n data: { messageData: message }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(result);\r\n if(result === \"reload\"){\r\n this.getMessages(this.messageId, this.userId, this.contactId, this.clientId, this.callerName, this.callerPhone, this.email, this.reference, this.company, this.statusId, this.deliveryTypeFilter, this.messageContent, this.fromDate, this.toDate, this.sortId, this.sortDir, 1);\r\n }\r\n });\r\n\r\n }\r\n\r\n emailReportDialog(messageContent: any, callerName: any, callerPhone:any, email:any, reference: any, company:any, statusId: number, deliveryTypeId: number, fromCreatedDate: any, toCreatedDate: any, filterByDate: boolean): void {\r\n\r\n this.MessageEmailReportData.callerName = callerName;\r\n this.MessageEmailReportData.messageSearch = messageContent;\r\n this.MessageEmailReportData.phone = callerPhone;\r\n this.MessageEmailReportData.email = email;\r\n this.MessageEmailReportData.reference = reference;\r\n this.MessageEmailReportData.company = company;\r\n this.MessageEmailReportData.statusId = statusId;\r\n this.MessageEmailReportData.deliveryTypeId = deliveryTypeId;\r\nif(filterByDate){\r\n this.MessageEmailReportData.fromCreatedDate = fromCreatedDate;\r\n this.MessageEmailReportData.toCreatedDate = toCreatedDate;\r\n}else{\r\n this.MessageEmailReportData.fromCreatedDate = 0;\r\n this.MessageEmailReportData.toCreatedDate = 0;\r\n}\r\n let dialogRef = this.dialog.open(EmailMessageReportDialogComponent, {\r\n width: '50%',\r\n data: { reportData: this.MessageEmailReportData, noOfMessages: this.noOfMessages }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n \r\n });\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { MessagesService } from '../../services/messages.service';\r\n\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\n\r\n\r\n@Component({\r\n selector: 'app-view-contacts-dialog',\r\n templateUrl: './view-contacts-dialog.component.html',\r\n styleUrls: ['./view-contacts-dialog.component.css']\r\n})\r\nexport class ViewContactsDialogComponent implements OnInit {\r\n contactData: Contacts[] =[];\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n\r\n this.contactData = this.data.contactsData;\r\n }\r\n\r\n\r\n closeDialog(contact){\r\n\r\n let temp = {\r\n\r\n value: contact\r\n\r\n }\r\n\r\n this.dialogRef.close(temp);\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n}\r\n","export default \"
\\r\\n\\r\\n \\r\\n

Movement Details

\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.contactName }}\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.contactName }}\\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Active\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n  
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\";","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { StatusTypesData, StatusTypes, StatusType } from '../../models/invoiceStatusData';\r\n\r\nimport { InvoiceData, Invoices, Invoice } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-client-invoicing',\r\n templateUrl: './client-invoicing.component.html',\r\n styleUrls: ['./client-invoicing.component.css'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ClientInvoicingComponent implements OnInit {\r\n listOfInvoices: Invoice[] = [];\r\n clientId: number = 0;\r\n isActiveFilter: number = 0;\r\n isInvoiceTypeFilter: number = 0;\r\n noOfInvoices: number = 0;\r\n listOfInvoiceStatus: StatusType[] = [];\r\n sortId: number = 4;\r\n sortDir: string = 'DESC';\r\n statusTypeId: number = 0;\r\n pageNo: number = 1;\r\n\r\n activeStates = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n\r\n\r\n invoiceTypes = [\r\n { value: 0, viewValue: 'Any' },\r\n { value: 1, viewValue: 'Invoice' },\r\n { value: 2, viewValue: 'Credit Note' }\r\n ];\r\n\r\n\r\n constructor(public invoicingService: InvoicingService, public snackBar: MatSnackBar, private router: Router, private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n \r\n }\r\n\r\n getInvoiceStatus(){\r\n\r\n this.invoicingService.getInvoiceStatusType(0,0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfInvoiceStatus = resp.statusTypes;\r\n this.listOfInvoiceStatus.unshift({statusTypeId: 0, name: \"Any\", isActive: true});\r\n }\r\n })\r\n }\r\n\r\n reset(){\r\n\r\n this.isActiveFilter = 1;\r\n this.pageNo = 1;\r\n this.isInvoiceTypeFilter = 1;\r\n this.sortId = 4;\r\n this.statusTypeId =1;\r\n this.sortDir = 'DESC';\r\n \r\n this.getInvoices(this.clientId, this.isInvoiceTypeFilter, this.statusTypeId, this.isActiveFilter, this.sortId, this.sortDir, 1);\r\n }\r\n\r\n changeDir(sortId) {\r\n if (this.sortDir === 'ASC') {\r\n this.sortDir = 'DESC';\r\n this.sortId = sortId;\r\n this.getInvoices(this.clientId, this.isInvoiceTypeFilter, this.statusTypeId, this.isActiveFilter, this.sortId, this.sortDir, this.pageNo);\r\n } else {\r\n this.sortDir = 'ASC';\r\n this.sortId = sortId;\r\n this.getInvoices(this.clientId, this.isInvoiceTypeFilter, this.statusTypeId, this.isActiveFilter, this.sortId, this.sortDir, this.pageNo);\r\n }\r\n\r\n }\r\n\r\n setPage(event) {\r\n console.log(event);\r\n this.getInvoices(this.clientId, this.isInvoiceTypeFilter, this.statusTypeId, this.isActiveFilter, this.sortId, this.sortDir, event.pageIndex + 1);\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getInvoices(clientId: number, invoiceTypeId: number, statusId: number, isActive: number, sortId: number, sortDir: any, pageNo: number){\r\n\r\n this.invoicingService.getInvoices(0, clientId, 0, invoiceTypeId, statusId, isActive, sortId, sortDir, pageNo).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfInvoices = resp.invoices.invoices;\r\n this.noOfInvoices = resp.invoices.totalCount;\r\n\r\n }\r\n })\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtZGV0YWlsLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n

\\r\\n\\r\\n {{selectedContact.fullName}}\\r\\n

\\r\\n
    \\r\\n
  1. Clients\\r\\n
  2. \\r\\n
  3. {{selectedContact.clientName}}\\r\\n
  4. \\r\\n
  5. Contact
  6. \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n Contact Details\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Use a semi-colon for multiple mobile number\\r\\n \\r\\n
\\r\\n
\\r\\n Mobile Private\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Phone Private\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n Fax Private\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{deliveryType.name}}\\r\\n \\r\\n \\r\\n \\r\\n


\\r\\n Active\\r\\n

\\r\\n Default Contact\\r\\n

\\r\\n\\r\\n Principle\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Email Address 1 Settings\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Use a semi-colon for multiple email addresses\\r\\n \\r\\n

\\r\\n Email Address1 Eod\\r\\n

\\r\\n Email Address1 Private\\r\\n

\\r\\n\\r\\n
\\r\\n
\\r\\n

\\r\\n \\r\\n \\r\\n Email Address 2 Settings\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Use a semi-colon for multiple email addresses\\r\\n \\r\\n

\\r\\n Email Address 2 Eod\\r\\n

\\r\\n Email Address 2 Private\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

\\r\\n Only primary office can edit this contact\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n Created: {{selectedContact.createdDate | amDateFormat:'LL'}} by {{selectedContact.createdBy}}\\r\\n 0\\\">| Last updated: {{selectedContact.lastUpdatedDate | amDateFormat:'LL'}} by \\r\\n {{selectedContact.lastUpdatedBy}}\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJsb2dpbi5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbnZvaWNpbmctZGV0YWlsLmNvbXBvbmVudC5jc3MifQ== */\";","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AppSettings } from '../app-settings';\r\n\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, SubAccountData } from '../models/clientData';\r\n\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../models/contactData';\r\nimport { SourceTypeData, SourceTypes, SourceType } from '../models/sourceData';\r\nimport { PaymentTypesData, PaymentTypes, PaymentType } from '../models/paymentData';\r\nimport { TaxData, TaxCodes, TaxCode } from '../models/taxData';\r\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../models/deliveryData';\r\nimport { BillingData, Billings } from '../models/billingData';\r\nimport { eodData } from '../models/endOfDayClient';\r\n\r\n@Injectable()\r\nexport class ClientsContactsService {\r\n\r\n constructor(public http: HttpClient) { }\r\n getClients(clientId: number, clientName: any, clientAcroynm:any, officeId: number, isActive:number, isTrial: number, isMasterAccount: number, isOutOfHours: number, isVatExempt: number, paymentTypeId: number, sourceId: number, taxCodeId: number, sortId: number, sortDir: string, pageNo:number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/client/\" + clientId + '/' + clientName + '/' + clientAcroynm + '/' + officeId + '/' + isActive + '/' + isTrial + '/' + isMasterAccount + '/' + isOutOfHours + '/' + isVatExempt + '/' + paymentTypeId + '/' + sourceId + '/' + taxCodeId + '/' + sortId + '/' + sortDir + '/' + pageNo);\r\n }\r\n getContacts(contactId: number, contactName: any, clientId:number, isActive:number, isPrinciple: number, isDefaultContact: number, sortId:number, sortDir: string, pageNo:number ): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/contact/\" + contactId + '/' + contactName + '/' + clientId + '/' + isActive + '/' + isPrinciple + '/' + isDefaultContact + '/' + sortId + '/' + sortDir + '/' + pageNo);\r\n }\r\n getClientsAutocomplete(clientName: any, clientId: number, officeId: number, isMasterAccount: number, isActive: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/client/\" + clientName + '/' + clientId + '/' + officeId + '/' + isMasterAccount + '/' + isActive);\r\n }\r\n getContactsAutocomplete(contactName: any, contactId: number, clientId: number, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/contact/\" + contactName + '/' + contactId + '/' + clientId + '/' + isActive);\r\n }\r\n updateClient(clientId: number, officeIds:string, clientData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/client/update/\" + clientId + '/' + officeIds, clientData);\r\n }\r\n addClient(officeIds:string, clientData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/client/add/\" + officeIds, clientData);\r\n }\r\n updateContact(contactId: number, contactData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/contact/update/\" + contactId, contactData);\r\n }\r\n addContact(contactData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/contact/add\", contactData);\r\n }\r\n getSourceType(sourceTypeId: number, name: any, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/sourceType/\" + sourceTypeId + '/' + name + '/' + isActive);\r\n }\r\n getPaymentType(paymentTypeId: number, name: any, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/paymentType/\" + paymentTypeId + '/' + name + '/' + isActive);\r\n }\r\n getTaxCode(taxId: number, code: any, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/taxCode/\" + taxId + '/' + code + '/' + isActive);\r\n }\r\n getDeliveryType(deliveryTypeId: number, name: any, isActive:number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/deliveryType/\" + deliveryTypeId + '/' + name + '/' + isActive);\r\n }\r\n getBillingFrequency(): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/billingFrequency\");\r\n }\r\n getClientSubAccounts(clientId: number): Observable {\r\n return this.http.get(AppSettings.API_ENDPOINT + \"/clientSubAccounts/\" + clientId);\r\n }\r\n\r\n endOfDelivery(eodData: any): Observable {\r\n return this.http.post(AppSettings.API_ENDPOINT + \"/endOfDeliveryForClient\", eodData);\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{selectedClient.clientName}} ({{selectedClient.clientAcronym}})

\\r\\n\\r\\n
    \\r\\n
  1. \\r\\n Clients\\r\\n
  2. \\r\\n
  3. Client
  4. \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n business\\r\\n\\r\\n Company Details\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 4 Characters\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ contact.contactName }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n If a master account is assigned then this account will automatically inherit its\\r\\n billing date.\\r\\n \\r\\n \\r\\n \\r\\n {{ client.clientName }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n

Client is a Master Account

\\r\\n\\r\\n \\r\\n {{client.clientName}}\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n location_on\\r\\n Address\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n contact_phone\\r\\n Contact Details\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n work\\r\\n Offices\\r\\n \\r\\n \\r\\n

Select the offices below which should be able to take messages for this client.

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n {{office.name}} (Primary Owner)\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n euro_symbol\\r\\n Invoicing Details\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n Vat Exempt\\r\\n
\\r\\n
\\r\\n Invoice Scheduled\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ payment.name }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ billing.name }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ month.value }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ month.value }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ taxCode.code }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ tariff.productCode }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n assignment\\r\\n Account Details\\r\\n \\r\\n \\r\\n\\r\\n Out Of Hours\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n Trial\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n Active\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ source.name }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n messages\\r\\n Messaging Info\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n \\r\\n

\\r\\n Only primary office can edit this client\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n Created: {{selectedClient.createdDate | amDateFormat:'LL'}} by {{selectedClient.createdBy}}\\r\\n 0\\\">| Last updated: {{selectedClient.lastUpdatedDate | amDateFormat:'LL'}} by {{selectedClient.lastUpdatedBy}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtY3JlZGl0LW5vdGUtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjaGFuZ2UtaW52b2ljZS1yZWZlcmVuY2UtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtdGVtcGxhdGUtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbnZvaWNpbmctcHJvZHVjdHMuY29tcG9uZW50LmNzcyJ9 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem, EmailInvoiceData } from '../../models/invoiceData';\r\n\r\nimport { PaymentTypesData, PaymentTypes, PaymentType} from '../../models/paymentData';\r\n\r\n\r\n@Component({\r\n selector: 'app-change-invoice-payment-type-dialog',\r\n templateUrl: './change-invoice-payment-type-dialog.component.html',\r\n styleUrls: ['./change-invoice-payment-type-dialog.component.css'],\r\n providers: [InvoicingService, ClientsContactsService]\r\n})\r\nexport class ChangeInvoicePaymentTypeDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n invoiceData: Invoice;\r\n paymentTypeId: number = 0;\r\n listOfPaymentTypes: PaymentType[] = []; \r\n loading: boolean = false;\r\n permanent: boolean = false;\r\n\r\n constructor(private fb: FormBuilder, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar) {\r\n this.rForm = fb.group({\r\n 'paymentTypeId': ['', Validators.required],\r\n 'permanent': [true]\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.invoiceData = this.data.invoice;\r\n this.rForm.controls['paymentTypeId'].setValue(this.invoiceData.paymentTypeId);\r\n\r\n this.paymentTypeId = this.invoiceData.paymentTypeId;\r\n \r\n this.getPaymentTypes();\r\n }\r\n\r\n getPaymentTypes(){\r\n\r\n this.clientsContactsService.getPaymentType(0, 0, 1).subscribe(resp => {\r\n\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n \r\n this.listOfPaymentTypes = resp.paymentTypes;\r\n }\r\n })\r\n\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n changePayment(post){\r\nthis.loading = true;\r\n\r\nlet perm = 0;\r\n\r\nif(this.permanent){\r\n perm = 1;\r\n}else{\r\n perm =0;\r\n}\r\n\r\n this.invoicingService.changeInvoicePaymentType(this.invoiceData.invoiceId, this.paymentTypeId, perm).subscribe(resp => {\r\n\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n this.openSnackBar(\"Invoice payment type updated\");\r\n this.loading = false;\r\n this.dialogRef.close();\r\n\r\n }\r\n })\r\n\r\n }\r\n\r\n}\r\n","export default \"\\r\\n

Complete Invoice

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Are you sure?\\r\\n \\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n\";","export default \"
\\r\\n\\r\\n \\r\\n

Change Date

\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n
\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n

Please note, the date change is for reference only - no recalculations are done.

\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","import { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable } from \"rxjs/RX\"\r\n\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate {\r\n public token: string | null;\r\n\r\n constructor(private router: Router){}\r\n\r\n canActivate(router:ActivatedRouteSnapshot, state:RouterStateSnapshot) {\r\n\r\n this.token = localStorage.getItem('Token');\r\n console.log('AuthGuard#canActivate called token ' + this.token);\r\n if(this.token){\r\n \r\n return true;\r\n\r\n }else{\r\n this.router.navigate(['/login'], { queryParams: { timeout: 2 }});\r\n return false;\r\n }\r\n \r\n }\r\n}","import { Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\nimport { UserData, UserDetails, Users, User } from '../../models/userData';\r\nimport { RoleData, Roles, Role } from '../../models/roleData';\r\nimport { UserRolesData, UserRoles } from '../../models/userRolesData';\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-user-detail',\r\n templateUrl: './user-detail.component.html',\r\n styleUrls: ['./user-detail.component.css'],\r\n providers: [OfficesUsersRolesService, UserSessionService]\r\n})\r\nexport class UserDetailComponent implements OnInit {\r\n listOfUsers: any;\r\n listOfRoles: Roles[];\r\n temp: string;\r\n userSelected: any;\r\n rForm: FormGroup;\r\n selectedRoles: string;\r\n userId: number;\r\n listOfUsersActiveRoles: UserRolesData;\r\n arrayOfActiveRoles: number[] = new Array();\r\n me: any;\r\n navRoleOffice: boolean = false;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n officeSelected: Office;\r\n officeIsHeadOffice: boolean = false;\r\n\r\n get roles(): FormArray {\r\n return this.rForm.get('roles');\r\n }\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, public userSessionService: UserSessionService, private router: Router, private route: ActivatedRoute, private fb: FormBuilder, public snackBar: MatSnackBar) {\r\n\r\n this.rForm = fb.group({\r\n 'firstName': [false, Validators.required],\r\n 'surname': [false, Validators.required],\r\n 'emailAddress': [false, [Validators.required, Validators.email]],\r\n 'isActive': [false, Validators.required],\r\n //'isSelected': [false, Validators.required],\r\n 'isEODSummary': [false],\r\n roles: this.fb.array([])\r\n });\r\n\r\n\r\n }\r\n addRole(selected, id, disabled): void {\r\n\r\n this.roles.push(this.buildRoles(selected, id, disabled));\r\n }\r\n\r\n buildRoles(selected, id, disabled): FormGroup {\r\n return this.fb.group({\r\n roleId: id,\r\n locked: disabled,\r\n isSelected: new FormControl({ value: selected, disabled: disabled })\r\n })\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n private getMe() {\r\n console.log(\"header calling\");\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n //this.me = new Me();\r\n\r\n\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n if (arrayOfRoles.includes(3)) {\r\n this.navRoleOffice = true;\r\n }\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n this.navRoleHeadOffice = true;\r\n }\r\n\r\n this.getUserRoles(this.userId);\r\n }\r\n //this.userSessionService.updateUser(resp);\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.getMe();\r\n this.route.params.forEach(params => {\r\n this.userId = parseInt(params[\"userId\"]);\r\n //this.tabId = parseInt(params[\"tabId\"]);\r\n //call your function, like getUserInfo()\r\n this.getUsers(this.userId, 0);\r\n\r\n })\r\n\r\n this.userSelected = new User();\r\n this.listOfUsers = new UserData();\r\n\r\n this.listOfUsersActiveRoles = new UserRolesData();\r\n\r\n \r\n }\r\n private getUserRoles(userId: number) {\r\n this.officesUsersRolesService.getUserRoles(userId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.arrayOfActiveRoles = [];\r\n this.listOfUsersActiveRoles = resp;\r\n console.log(this.listOfUsersActiveRoles);\r\n let tempList = this.listOfUsersActiveRoles.userRoles[0];\r\n tempList.roles.forEach((role) => {\r\n\r\n this.arrayOfActiveRoles.push(role.roleId);\r\n });\r\n this.getRoles(0, '0', 0);\r\n }\r\n });\r\n }\r\n\r\n\r\n getOffices(id: number, officeName: string, isActive: number, officePageNo: number) {\r\n this.officesUsersRolesService.getOffices(id, officeName, isActive, officePageNo).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.officeSelected = resp.officeDetails.offices[0];\r\n\r\n if(this.officeSelected.isHeadOffice){\r\n this.officeIsHeadOffice = true;\r\n }else{\r\n this.officeIsHeadOffice = false;\r\n }\r\n\r\n }\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n private getUsers(userId: number, officeId: number) {\r\n this.officesUsersRolesService.getUsers(userId, '0', officeId, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfUsers = resp.userDetails;\r\n resp.userDetails.users.forEach((users) => {\r\n\r\n this.userSelected = users;\r\n\r\n });\r\n\r\n this.getOffices(this.userSelected.officeId, '0', 0, 0);\r\n }\r\n });\r\n\r\n }\r\n private getRoles(roleId: number, name: any, isActive: number) {\r\n this.officesUsersRolesService.getRoles(0, '0', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n resp.roles.forEach((roles) => {\r\n roles.isSelected = false;\r\n console.log(this.arrayOfActiveRoles);\r\n if (this.arrayOfActiveRoles.includes(roles.roleId)) {\r\n\r\n if (roles.roleId === 1) {\r\n this.addRole(true, roles.roleId, true);\r\n } else if (roles.roleId === 6) {\r\n\r\n if (this.navRoleHeadOffice) {\r\n\r\n this.addRole(true, roles.roleId, false);\r\n }else{\r\n this.addRole(true, roles.roleId, true);\r\n }\r\n }else{\r\n this.addRole(true, roles.roleId, false);\r\n }\r\n\r\n } else {\r\n if (roles.roleId === 1) {\r\n this.addRole(true, roles.roleId, true);\r\n } else if (roles.roleId === 6) {\r\n if (this.navRoleHeadOffice && this.officeIsHeadOffice) {\r\n\r\n this.addRole(false, roles.roleId, false);\r\n }else{\r\n this.addRole(false, roles.roleId, true);\r\n }\r\n }else{\r\n this.addRole(false, roles.roleId, false);\r\n\r\n }\r\n }\r\n\r\n });\r\n\r\n this.listOfRoles = resp.roles;\r\n\r\n return this.listOfRoles;\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n updateUser(post) {\r\n console.log(post);\r\n this.selectedRoles = '';\r\n\r\n post.roles.forEach((role, i) => {\r\n if (!role.hasOwnProperty(\"isSelected\")) {\r\n\r\n if(role.locked && role.roleId !=1){\r\n\r\n }else{\r\n this.selectedRoles += role.roleId + \",\";\r\n }\r\n \r\n } else {\r\n if (role.isSelected) {\r\n \r\n this.selectedRoles += role.roleId + \",\";\r\n }\r\n }\r\n });\r\n console.log(this.selectedRoles);\r\n this.selectedRoles = this.selectedRoles.slice(0, -1);\r\n\r\n this.officesUsersRolesService.updateUser(this.userSelected.userId, this.selectedRoles, this.userSelected).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n \r\n } else {\r\n this.openSnackBar(\"User updated\");\r\n \r\n //this.ngOnInit();\r\n\r\n }\r\n\r\n });\r\n }\r\n}","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2b2lkLWludm9pY2UtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{officeSelected.name}} ({{officeSelected.referenceNo}})

\\r\\n
    \\r\\n
  1. Office
  2. \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n Office Details\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 4 Characters - numberical only\\r\\n \\r\\n

\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ user.userName }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Out of Hours\\r\\n\\r\\n
\\r\\n
\\r\\n Head Office\\r\\n
\\r\\n
\\r\\n Active\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n Address\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Email & SMS Settings\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n Use SSL\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Created: {{officeSelected.createdDate | amDateFormat:'LL'}} by {{officeSelected.createdBy}}\\r\\n 0\\\">| Last updated: {{officeSelected.lastUpdatedDate | amDateFormat:'LL'}} by {{officeSelected.lastUpdatedBy}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export class PasswordData {\r\n password: string; \r\n errors: any | null;\r\n }\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJlbWFpbC1tZXNzYWdlLXJlcG9ydC1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJhZGQtdXNlci1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJub3RpY2VzLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { MovementsService } from '../../services/movements.service';\r\nimport { MovementDetails, MovementData, Movements, Movement } from '../../models/movementData';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\n\r\n@Component({\r\n selector: 'app-add-movement-dialog',\r\n templateUrl: './add-movement-dialog.component.html',\r\n styleUrls: ['./add-movement-dialog.component.css'],\r\n providers: [MovementsService, ClientsContactsService]\r\n})\r\nexport class AddMovementDialogComponent implements OnInit {\r\n\r\n rForm: FormGroup;\r\n newMovement: Movement;\r\n myControlContacts: FormControl = new FormControl();\r\n myControlContacts2: FormControl = new FormControl();\r\n filteredContacts: ContactAutocomplete[] = [];\r\n filteredContacts2: ContactAutocomplete[] = [];\r\n selectedClientId: number;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public snackBar: MatSnackBar, public movementsService: MovementsService, public clientsContactsService: ClientsContactsService) {\r\n\r\n\r\n this.rForm = fb.group({\r\n\r\n 'clientId': [null],\r\n 'notes': [null],\r\n 'startDate': [moment().toDate(), Validators.required],\r\n 'endDate': [moment().toDate(), Validators.required],\r\n 'outOfOfficeId': [null],\r\n 'forwardToId': [null],\r\n });\r\n\r\n\r\n this.myControlContacts.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlContacts.value);\r\n if (this.myControlContacts.value === '' || typeof this.myControlContacts.value != 'string') {\r\n return this.filteredContacts = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.myControlContacts.value, 0, this.selectedClientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts = res.contacts\r\n })\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n this.myControlContacts2.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlContacts2.value);\r\n if (this.myControlContacts2.value === '' || typeof this.myControlContacts2.value != 'string') {\r\n return this.filteredContacts2 = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.myControlContacts2.value, 0, this.selectedClientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts2 = res.contacts\r\n })\r\n }\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.newMovement = new Movement();\r\n this.selectedClientId = this.data.clientId;\r\n\r\n this.newMovement.clientId = this.selectedClientId;\r\n }\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n\r\n setOutofOffice(contact) {\r\n \r\n if (contact.contactId > 0) {\r\n this.newMovement.outOfOfficeId = contact.contactId;\r\n }\r\n\r\n\r\n }\r\n setForwardTo(contact) {\r\n\r\n if (contact.contactId > 0) {\r\n this.newMovement.forwardToId = contact.contactId;\r\n }\r\n\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n addMovement(post) {\r\n\r\n\r\n post.startDate = moment(post.startDate).set({hour:0,minute:0,second:0,millisecond:0}).toDate();\r\n\r\n post.endDate = moment(post.endDate).set({hour:0,minute:0,second:0,millisecond:0}).toDate();\r\n \r\n if (moment(post.startDate).isValid()) {\r\n this.newMovement.startDate = post.startDate;\r\n }\r\n if (moment(post.endDate).isValid()) {\r\n this.newMovement.endDate = post.endDate;\r\n }\r\n\r\n\r\n console.log(this.newMovement);\r\n this.movementsService.addMovements(this.newMovement).subscribe(resp => {\r\n\r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Movement Added\");\r\n this.dialogRef.close();\r\n\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJoZWFkZXIuY29tcG9uZW50LmNzcyJ9 */\";","export class UserRolesData{\r\n errors: any[] | null;\r\n userRoles: UserRoles[] | null;\r\n}\r\nexport class UserRoles{\r\n roles: RolesActive[] | null;\r\n userId: number;\r\n userName: string;\r\n}\r\nexport class RolesActive{\r\n name: string; \r\n roleId: number;\r\n}","export default \"\\r\\n\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJpbnZvaWNpbmcuY29tcG9uZW50LmNzcyJ9 */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LWNvbnRhY3RzLWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LW1vdmVtZW50LWRpYWxvZy5jb21wb25lbnQuY3NzIn0= */\";","export default \"body {\\r\\n background: rgb(204,204,204); \\r\\n font-size: 1em;\\r\\n }\\r\\n .page {\\r\\n background: white;\\r\\n width: 21cm;\\r\\n height: 29.7cm;\\r\\n /*display: block;\\r\\n margin: 0 auto;*/\\r\\n margin-bottom: 0.5cm;\\r\\n }\\r\\n table{\\r\\n font-size: 0.8em !important;\\r\\n }\\r\\n @media print {\\r\\n @page {size: A4 portrait; }\\r\\n body, .page {\\r\\n margin: 0;\\r\\n padding: 0;\\r\\n width: 100%;\\r\\n size: portrait;\\r\\n box-shadow: 0;\\r\\n \\r\\n }\\r\\n table{\\r\\n font-size: 0.8em !important;\\r\\n }\\r\\n }\\r\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByaW50LWludm9pY2UuY29tcG9uZW50LmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtJQUNJLDRCQUE0QjtJQUM1QixjQUFjO0VBQ2hCO0VBQ0E7SUFDRSxpQkFBaUI7SUFDakIsV0FBVztJQUNYLGNBQWM7SUFDZDtvQkFDZ0I7SUFDaEIsb0JBQW9CO0VBQ3RCO0VBQ0E7SUFDRSwyQkFBMkI7RUFDN0I7RUFDQTtJQUNFLE9BQU8saUJBQWlCLEVBQUU7SUFDMUI7TUFDRSxTQUFTO01BQ1QsVUFBVTtNQUNWLFdBQVc7TUFDWCxjQUFjO01BQ2QsYUFBYTs7SUFFZjtJQUNBO01BQ0UsMkJBQTJCO0lBQzdCO0VBQ0YiLCJmaWxlIjoicHJpbnQtaW52b2ljZS5jb21wb25lbnQuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiYm9keSB7XHJcbiAgICBiYWNrZ3JvdW5kOiByZ2IoMjA0LDIwNCwyMDQpOyBcclxuICAgIGZvbnQtc2l6ZTogMWVtO1xyXG4gIH1cclxuICAucGFnZSB7XHJcbiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTtcclxuICAgIHdpZHRoOiAyMWNtO1xyXG4gICAgaGVpZ2h0OiAyOS43Y207XHJcbiAgICAvKmRpc3BsYXk6IGJsb2NrO1xyXG4gICAgbWFyZ2luOiAwIGF1dG87Ki9cclxuICAgIG1hcmdpbi1ib3R0b206IDAuNWNtO1xyXG4gIH1cclxuICB0YWJsZXtcclxuICAgIGZvbnQtc2l6ZTogMC44ZW0gIWltcG9ydGFudDtcclxuICB9XHJcbiAgQG1lZGlhIHByaW50IHtcclxuICAgIEBwYWdlIHtzaXplOiBBNCBwb3J0cmFpdDsgfVxyXG4gICAgYm9keSwgLnBhZ2Uge1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICAgIHBhZGRpbmc6IDA7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBzaXplOiBwb3J0cmFpdDtcclxuICAgICAgYm94LXNoYWRvdzogMDtcclxuICAgICAgXHJcbiAgICB9XHJcbiAgICB0YWJsZXtcclxuICAgICAgZm9udC1zaXplOiAwLjhlbSAhaW1wb3J0YW50O1xyXG4gICAgfVxyXG4gIH0iXX0= */\";","import { Component, OnInit } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { BehaviorSubject , Observable } from 'rxjs';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n\r\nimport * as moment from 'moment';\r\n\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem, EmailInvoiceData, SentInvoiceData, InvoiceSentItem } from '../../models/invoiceData';\r\n\r\n\r\n@Component({\r\n selector: 'app-client-sent-invoices',\r\n templateUrl: './client-sent-invoices.component.html',\r\n styleUrls: ['./client-sent-invoices.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class ClientSentInvoicesComponent implements OnInit {\r\n listOfSentItems: InvoiceSentItem[] = [];\r\n noOfSentItems: number = 0;\r\n clientId: number = 0;\r\n\r\n constructor(public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n\r\n //this.getSentInvoices(this.clientId, 1);\r\n }\r\n\r\n setPage(event){\r\n this.getSentInvoices(this.clientId, event.pageIndex + 1); \r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getSentInvoices(clientId: number, pageNo: number){\r\n\r\n this.invoicingService.invoiceSentItems(clientId, pageNo).subscribe(resp => {\r\n this.listOfSentItems = resp.sentInvoices.invoiceSentItems;\r\n this.noOfSentItems = resp.sentInvoices.totalCount;\r\n })\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\n\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\nimport { ProductTypesData, ProductTypes, ProductType } from '../../models/productTypesData';\r\n\r\n@Component({\r\n selector: 'app-view-line-item-dialog',\r\n templateUrl: './view-line-item-dialog.component.html',\r\n styleUrls: ['./view-line-item-dialog.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService, ClientsContactsService]\r\n})\r\nexport class ViewLineItemDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n lineItem: LineItems;\r\n productTypes: ProductType[] = [];\r\n listOfProducts: Product[] = [];\r\n officeId: number = 1;\r\n listOfTaxCodes: TaxCode[] = [];\r\n productTypeId: number;\r\n loading: boolean = false;\r\n currentProductTypeId: number;\r\n \r\n\r\n constructor(public clientsContactsService: ClientsContactsService, public snackBar: MatSnackBar, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public invoicingService: InvoicingService) {\r\n\r\n this.rForm = fb.group({\r\n\r\n 'quantity': [null, Validators.required],\r\n 'productTypeId': [null, Validators.required],\r\n 'productId': [null, Validators.required],\r\n 'description': [null, Validators.required],\r\n 'unitPrice': [null, Validators.required],\r\n 'isActive': true,\r\n 'taxId': [null, Validators.required],\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n \r\n this.getProductTypes();\r\n this.getTaxCode();\r\nconsole.log(this.data)\r\n //look up product type ID\r\n this.getProductType(this.data.lineItem.productId, this.data.lineItem.productTypeId);\r\n this.getProducts(this.data.lineItem.productTypeId);\r\n //this.getProducts(this.data.lineItem.productTypeId);\r\n this.lineItem = this.data.lineItem;\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n getProductType(id, productTypeId) {\r\n\r\n if(productTypeId > 0){\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, 0, this.officeId, 0, 1, 0, 1, 'ASC', 0).subscribe(resp => {\r\n console.log(resp);\r\n this.currentProductTypeId = resp.invoiceProducts.products[0].productTypeId;\r\n\r\n //this.lineItem.productTypeId = this.currentProductTypeId;\r\n \r\n })\r\n }\r\n }\r\n\r\n getProducts(productTypeId: any) {\r\n console.log(productTypeId);\r\n\r\n if (productTypeId > 0) {\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, productTypeId, this.officeId, 0, 1, 1, 1, 'ASC', 0).subscribe(resp => {\r\n\r\n this.listOfProducts = resp.invoiceProducts.products;\r\n\r\n })\r\n }\r\n\r\n }\r\n\r\n updateValues(product: Product) {\r\n console.log(product);\r\n this.lineItem.unitPrice = product.unitCost;\r\n this.lineItem.description = product.description;\r\n this.lineItem.taxId = product.taxId;\r\n\r\n }\r\n\r\n\r\n getTaxCode() {\r\n\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n\r\n } else {\r\n\r\n this.listOfTaxCodes = resp.taxCodes;\r\n\r\n }\r\n })\r\n }\r\n\r\n getProductTypes() {\r\n\r\n this.invoicingService.getProductTypes(0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n\r\n } else {\r\n this.productTypes = resp.productTypes;\r\n\r\n }\r\n })\r\n }\r\n\r\n\r\n updateLineItem(post) {\r\n this.loading = true;\r\n this.invoicingService.updateLineItem(this.lineItem.lineItemId, this.lineItem).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n this.openSnackBar(\"Line Item deleted\");\r\n this.loading = false;\r\n this.dialogRef.close();\r\n\r\n }\r\n\r\n\r\n })\r\n\r\n }\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { AuthGuard } from './auth.guard.service';\r\n \r\nimport { LoginComponent } from './components/login/login.component';\r\nimport { HomeComponent } from './components/home/home.component';\r\nimport { MessagesComponent } from './components/messages/messages.component';\r\nimport { ClientsComponent } from './components/clients/clients.component';\r\nimport { PageNotFoundComponent } from './components/page-not-found/page-not-found.component';\r\nimport { MyAccountComponent } from './components/my-account/my-account.component';\r\nimport { InvoicingComponent } from './components/invoicing/invoicing.component';\r\nimport { OfficesComponent } from './components/offices/offices.component';\r\nimport { UsersComponent } from './components/users/users.component';\r\nimport { OfficeDetailComponent } from './components/office-detail/office-detail.component';\r\nimport { UserDetailComponent } from './components/user-detail/user-detail.component';\r\nimport { ClientDetailComponent } from './components/client-detail/client-detail.component';\r\nimport { ReportingComponent } from './components/reporting/reporting.component';\r\nimport { OutboxComponent } from './components/outbox/outbox.component';\r\nimport { ContactsDetailComponent } from './components/contacts-detail/contacts-detail.component';\r\nimport { AdminComponent } from './components/admin/admin.component';\r\nimport { MessageStatsComponent } from './components/message-stats/message-stats.component';\r\nimport { JournalsComponent } from './components/journals/journals.component';\r\nimport { ResetComponent } from './components/reset/reset.component';\r\nimport { PrintMovementComponent } from './components/print-movement/print-movement.component'; \r\nimport { InvoicingDetailComponent } from './components/invoicing-detail/invoicing-detail.component'; \r\nimport { PrintInvoiceComponent } from './components/print-invoice/print-invoice.component'; \r\n\r\nconst appRoutes: Routes = [\r\n { \r\n path: '', \r\n data: {\r\n reuse: true\r\n },\r\n children: [\r\n { path: 'messages', component: MessagesComponent, canActivate: [AuthGuard] },\r\n { path: 'messages/outbox', component: OutboxComponent, canActivate: [AuthGuard] },\r\n { path: 'messages/stats', component: MessageStatsComponent, canActivate: [AuthGuard] },\r\n { path: 'clients', component: ClientsComponent, canActivate: [AuthGuard] },\r\n { path: 'clients/:clientId/tab/:tabId', component: ClientDetailComponent, canActivate: [AuthGuard] },\r\n { path: 'clients/contacts/:id', component: ContactsDetailComponent, canActivate: [AuthGuard] },\r\n { path: 'invoicing', component: InvoicingComponent, canActivate: [AuthGuard] },\r\n { path: 'invoicing/invoice/:id', component: InvoicingDetailComponent, canActivate: [AuthGuard] },\r\n { path: 'my-account', component: MyAccountComponent, canActivate: [AuthGuard] },\r\n { path: 'offices', component: OfficesComponent, canActivate: [AuthGuard] },\r\n { path: 'offices/:officeId/tab/:tabId', component: OfficeDetailComponent, canActivate: [AuthGuard] },\r\n { path: 'offices/users/:userId', component: UserDetailComponent, canActivate: [AuthGuard] },\r\n { path: 'reporting', component: ReportingComponent, canActivate: [AuthGuard] },\r\n { path: 'admin', component: AdminComponent, canActivate: [AuthGuard] },\r\n { path: 'journals', component: JournalsComponent, canActivate: [AuthGuard] },\r\n \r\n ],\r\n component: HomeComponent,\r\n canActivate: [AuthGuard],\r\n runGuardsAndResolvers: 'always',\r\n },\r\n { path: 'print-invoice/:invoiceId', component: PrintInvoiceComponent, canActivate: [AuthGuard] },\r\n { path: 'print-movements', component: PrintMovementComponent, canActivate: [AuthGuard] },\r\n //{ path: '', redirectTo: 'home/messages', pathMatch: 'full' },\r\n { path: 'login', component: LoginComponent, \r\n data: { shouldDetach: true} },\r\n { path: 'reset', component: ResetComponent },\r\n { path: '**', component: PageNotFoundComponent }\r\n \r\n];\r\n \r\n@NgModule({\r\n imports: [\r\n RouterModule.forRoot(appRoutes, {onSameUrlNavigation: 'reload'})\r\n \r\n ],\r\n exports: [\r\n RouterModule\r\n ],\r\n providers: [AuthGuard]\r\n})\r\nexport class AppRoutingModule {}","export default \"
\\r\\n\\r\\n \\r\\n

Change Tariff

\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ tariff.productName }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJ2aWV3LWludm9pY2UtcHJvZHVjdC1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","import { Component, OnInit } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport * as moment from 'moment';\r\n\r\n\r\n\r\n\r\nimport { MeData } from '../../models/meData';\r\nimport { TemplateData, Templates, Template } from '../../models/templateData';\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\nimport { MovementData, MovementDetails, Movements, Movement } from '../../models/movementData';\r\nimport { NewMessage, MessageData, MessageDetails, Messages, MessageSearch } from '../../models/messageData';\r\nimport { CallerData, Callers } from '../../models/callerData';\r\nimport { DeliveryData, DeliveryTypes, DeliveryType } from '../../models/deliveryData';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { MessagesService } from '../../services/messages.service';\r\nimport { ViewMessageDialogComponent } from '../../components/view-message-dialog/view-message-dialog.component';\r\nimport { ConfirmPatchDialogComponent } from '../../components/confirm-patch-dialog/confirm-patch-dialog.component';\r\nimport { ViewContactsDialogComponent } from '../../components/view-contacts-dialog/view-contacts-dialog.component';\r\nimport { TemplatesService } from '../../services/templates.service';\r\n\r\nimport { MovementsService } from '../../services/movements.service';\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\nimport { JournalData, JournalMessages } from '../../models/journalData';\r\n\r\nimport { JournalsService } from '../../services/journals.service';\r\n\r\n@Component({\r\n selector: 'app-messages',\r\n templateUrl: './messages.component.html',\r\n styleUrls: ['./messages.component.css'],\r\n providers: [ClientsContactsService, MovementsService, TemplatesService, MessagesService, UserSessionService]\r\n})\r\nexport class MessagesComponent implements OnInit {\r\n showForm: boolean = true;\r\n useraccount: MeData;\r\n stateCtrl: FormControl;\r\n listOfMovements: Movement[] = [];\r\n selectedValue: string;\r\n listOfTemplates: any;\r\n useraccount2: any;\r\n email: any;\r\n rForm: FormGroup;\r\n listOfMessages: Messages[] = [];\r\n selectedOption: ClientAutocomplete;\r\n selectedOption2: ContactAutocomplete;\r\n options = [];\r\n options2 = [];\r\n selectedClient: Client;\r\n selectedContact: Contact;\r\n messageSearchData: MessageSearch;\r\n newMessage: NewMessage;\r\n viewClientData: boolean = false;\r\n filteredClients: ClientAutocomplete[] = [];\r\n filteredContacts: ContactAutocomplete[] = [];\r\n filteredCallers: Callers[] = [];\r\n selectedClientId: number = 0;\r\n contactInfo: Contact;\r\n listOfDelivery: DeliveryType[] = [];\r\n item: number;\r\n subscription: Subscription;\r\n message: any;\r\n userOfficeId: string;\r\n userId: string;\r\n clientId: number = 0;\r\n userRoles: string;\r\n userIdSubject: Observable;\r\n officeIdSubject: Observable;\r\n rolesSubject: Observable;\r\n ignoreMovement: boolean = false;\r\n beforeMovement: Contact;\r\n contactMovement: Movement;\r\n hour: number;\r\n minute: number;\r\n listOfContacts: Contact[] = [];\r\n me: any;\r\n navRoleOffice: boolean = false;\r\n navRoleInvoicing: boolean = false;\r\n navRoleHeadOffice: boolean = false;\r\n navRoleJournal: boolean = false;\r\n noOfMessages: number = 0;\r\n officeId: number;\r\n movementContact: Contact;\r\n listOfMovementIds = [];\r\n outOfOfficeContact: Contact;\r\n smsLimit: number = 1361;\r\n callerLength: number = 0;\r\n phoneLength: number = 0;\r\n companyLength: number = 0;\r\n emailLength: number = 0;\r\n referenceLength: number = 0;\r\n\r\n myControlClients: FormControl = new FormControl();\r\n\r\n myControlContacts: FormControl = new FormControl();\r\n\r\n contactControl: FormControl = new FormControl();\r\n\r\n\r\n testTime: any;\r\n hours = [\r\n { id: 0, viewValue: '00' },\r\n { id: 1, viewValue: '01' },\r\n { id: 2, viewValue: '02' },\r\n { id: 3, viewValue: '03' },\r\n { id: 4, viewValue: '04' },\r\n { id: 5, viewValue: '05' },\r\n { id: 6, viewValue: '06' },\r\n { id: 7, viewValue: '07' },\r\n { id: 8, viewValue: '08' },\r\n { id: 9, viewValue: '09' },\r\n { id: 10, viewValue: '10' },\r\n { id: 11, viewValue: '11' },\r\n { id: 12, viewValue: '12' },\r\n { id: 13, viewValue: '13' },\r\n { id: 14, viewValue: '14' },\r\n { id: 15, viewValue: '15' },\r\n { id: 16, viewValue: '16' },\r\n { id: 17, viewValue: '17' },\r\n { id: 18, viewValue: '18' },\r\n { id: 19, viewValue: '19' },\r\n { id: 20, viewValue: '20' },\r\n { id: 21, viewValue: '21' },\r\n { id: 22, viewValue: '22' },\r\n { id: 23, viewValue: '23' }\r\n\r\n ];\r\n\r\n minutes = [];\r\n\r\n constructor(public dialog: MatDialog, public journalsService: JournalsService, public snackBar: MatSnackBar, private fb: FormBuilder, public userSessionService: UserSessionService, public messagesService: MessagesService, public clientsContactsService: ClientsContactsService, public movementsService: MovementsService, public templatesService: TemplatesService) {\r\n\r\n this.userIdSubject = userSessionService.getUserId();\r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n //console.log(this.officeIdSubject);\r\n this.rolesSubject = userSessionService.getRoles();\r\n\r\n this.testTime = moment();\r\n console.log(this.testTime.toISOString());\r\n\r\n\r\n this.rForm = fb.group({\r\n\r\n 'clientId': new FormControl(),\r\n 'contactId': new FormControl({ value: '', disabled: true }, Validators.required),\r\n 'callerName': ['', Validators.required],\r\n 'templateId': [{ value: 0, disabled: true }],\r\n 'message': ['', Validators.required],\r\n 'email': [''],\r\n 'reference': [''],\r\n 'dateTaken': [moment().toDate(), Validators.required],\r\n 'phoneNo': ['', Validators.required],\r\n 'isEod': [true],\r\n 'messageFor': ['', Validators.required],\r\n 'company': [false],\r\n 'messageTypeId': [1],\r\n 'callerFound': [false],\r\n 'deliveryTypeId': [1, Validators.required],\r\n 'hour': new FormControl(),\r\n 'minute': new FormControl(),\r\n });\r\n\r\n this.rForm.controls['clientId'].valueChanges\r\n .subscribe(name => {\r\n //console.log(this.rForm.controls['clientId'].value);\r\n if (this.rForm.controls['clientId'].value === '' || typeof this.rForm.controls['clientId'].value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.rForm.controls['clientId'].value, 0, this.officeId, 0, 1)\r\n .subscribe(res => {\r\n if (res.errors.length == 0) {\r\n return this.filteredClients = res.clients\r\n } else {\r\n this.openSnackBarError(res.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n\r\n })\r\n }\r\n\r\n });\r\n\r\n this.myControlContacts.valueChanges\r\n .subscribe(name => {\r\n //console.log(this.myControlContacts.value);\r\n if (this.myControlContacts.value === '' || typeof this.myControlContacts.value != 'string') {\r\n return this.filteredContacts = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.myControlContacts.value, 0, this.selectedClientId, 1)\r\n .subscribe(res => {\r\n if (res.errors.length == 0) {\r\n return this.filteredContacts = res.contacts\r\n } else {\r\n this.openSnackBarError(res.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n\r\n })\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n private getMe() {\r\n //console.log(\"header calling\");\r\n this.userSessionService.getMe().subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n //this.me = new Me();\r\n\r\n\r\n this.me = resp.user[0];\r\n let arrayOfRoles = new Array();\r\n this.me.roles.forEach((role) => {\r\n arrayOfRoles.push(role.roleId);\r\n });\r\n if (arrayOfRoles.includes(3)) {\r\n this.navRoleOffice = true;\r\n }\r\n if (arrayOfRoles.includes(2)) {\r\n this.navRoleInvoicing = true;\r\n }\r\n if (arrayOfRoles.includes(5)) {\r\n this.navRoleJournal = true;\r\n }\r\n if (arrayOfRoles.includes(6)) {\r\n this.navRoleHeadOffice = true;\r\n }\r\n }\r\n //this.userSessionService.updateUser(resp);\r\n });\r\n }\r\n\r\n\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n displayFnCallers(caller: Callers): any {\r\n return caller ? caller.callerName : caller;\r\n }\r\n\r\n filter(clientName: string): ClientAutocomplete[] {\r\n\r\n this.clientsContactsService.getClientsAutocomplete(clientName, 0, this.officeId, 0, 1).subscribe(resp => {\r\n if (resp.errors.length == 0) {\r\n this.options = [];\r\n resp.clients.forEach((clients) => {\r\n\r\n let client = new ClientAutocomplete();\r\n client = clients;\r\n this.options.push(client);\r\n });\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n }\r\n\r\n });\r\n\r\n return this.options.filter(option =>\r\n option.clientName.toLowerCase().indexOf(clientName.toLowerCase()) === 0);\r\n\r\n }\r\n\r\n filter2(contactName: string): ContactsAutocomplete[] {\r\n\r\n this.clientsContactsService.getContactsAutocomplete(contactName, 0, 0, 1).subscribe(resp => {\r\n if (resp.errors.length == 0) {\r\n this.options2 = [];\r\n resp.contacts.forEach((contacts) => {\r\n\r\n let contact = new ContactAutocomplete();\r\n contact = contacts;\r\n this.options2.push(contact);\r\n });\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n }\r\n\r\n });\r\n return this.options2.filter(option =>\r\n option.contactName.toLowerCase().indexOf(contactName.toLowerCase()) === 0);\r\n\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 4000,\r\n });\r\n }\r\n openSnackBarError(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n });\r\n }\r\n\r\n undoMovement() {\r\n this.rForm.controls['contactId'].setValue(this.beforeMovement);\r\n this.selectedContact = this.beforeMovement;\r\n this.contactMovement = null;\r\n this.contactInfo = this.beforeMovement;\r\n this.rForm.controls['deliveryTypeId'].setValue(this.beforeMovement.deliveryTypeId);\r\n this.newMessage.messageFor = this.beforeMovement.fullName;\r\n }\r\n\r\n ngOnInit() {\r\n this.getMe();\r\n let i: number = 0;\r\n\r\n for (i = 0; i < 60; i++) {\r\n if (i < 10) {\r\n this.minutes.push({ id: i, viewValue: '0' + i });\r\n } else {\r\n this.minutes.push({ id: i, viewValue: String(i) });\r\n }\r\n }\r\n\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n\r\n this.hour = Number(moment().format('HH'));\r\n\r\n this.minute = Number(moment().format('mm'));\r\n\r\n this.getDeliveryType();\r\n this.outOfOfficeContact = new Contact();\r\n this.movementContact = new Contact();\r\n this.beforeMovement = new Contact();\r\n this.newMessage = new NewMessage();\r\n this.contactInfo = new Contact();\r\n this.messageSearchData = new MessageSearch();\r\n\r\n }\r\n\r\n private getClients(id: number, clientName: string, clientAcroynm: string, officeId: number, isActive: number, officePageNo: number) {\r\n this.clientsContactsService.getClients(id, clientName, clientAcroynm, officeId, isActive, 0, 0, 0, 0, 0, 0, 0, 1, 'ASC', officePageNo).subscribe(resp => {\r\n\r\n resp.clientDetails.clients.forEach((clients) => {\r\n this.selectedClient = clients;\r\n this.viewClientData = true;\r\n\r\n this.clientsContactsService.getContacts(0, 0, this.selectedClient.clientId, 1, 0, 0, 1, 'ASC', 0).subscribe(resp => {\r\n\r\n this.listOfContacts = resp.contactDetails.contacts;\r\n\r\n //set if only one contact\r\n if (resp.contactDetails.totalCount === 1) {\r\n //this.myControlContacts.setValue({ contactId: resp.contactDetails.contacts[0].clientId, fullName: resp.contactDetails.contacts[0].fullName });\r\n this.newMessage.contactId = resp.contactDetails.contacts[0].contactId;\r\n this.rForm.controls['contactId'].setValue(resp.contactDetails.contacts[0]);\r\n this.newMessage.messageFor = resp.contactDetails.contacts[0].fullName;\r\n let contactTemp = { 'value': resp.contactDetails.contacts[0] }\r\n this.rForm.controls['deliveryTypeId'].setValue(resp.contactDetails.contacts[0].deliveryTypeId);\r\n this.selectedContact = resp.contactDetails.contacts[0];\r\n this.contactInfo = resp.contactDetails.contacts[0];\r\n }\r\n })\r\n //Parse Web url link with https or http prefix\r\n if (this.selectedClient.webUrl === '' || this.selectedClient.webUrl === null) {\r\n\r\n } else {\r\n if (this.selectedClient.webUrl.startsWith(\"http://\") || this.selectedClient.webUrl.startsWith(\"https://\")) {\r\n } else {\r\n this.selectedClient.webUrl = \"http://\" + this.selectedClient.webUrl;\r\n }\r\n }\r\n\r\n if (this.selectedClient.privateUrl === '' || this.selectedClient.privateUrl === null) {\r\n\r\n } else {\r\n if (this.selectedClient.privateUrl.startsWith(\"http://\") || this.selectedClient.privateUrl.startsWith(\"https://\")) {\r\n } else {\r\n this.selectedClient.privateUrl = \"http://\" + this.selectedClient.privateUrl;\r\n }\r\n }\r\n if (this.selectedClient.formUrl === '' || this.selectedClient.formUrl === null) {\r\n\r\n } else {\r\n if (this.selectedClient.formUrl.startsWith(\"http://\") || this.selectedClient.formUrl.startsWith(\"https://\")) {\r\n } else {\r\n this.selectedClient.formUrl = \"http://\" + this.selectedClient.formUrl;\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n tabChanged = (tabChangeEvent: MatTabChangeEvent): void => {\r\n if (tabChangeEvent.index === 2) {\r\n this.getMessages(this.clientId);\r\n }\r\n }\r\n private focused = false;\r\n\r\n public focusout = (): void => {\r\n this.focused = false;\r\n };\r\n\r\n public focus = (): void => {\r\n if (this.focused) return;\r\n this.focused = true;\r\n\r\n // Timeout for cross browser compatibility (Chrome)\r\n setTimeout(() => { document.execCommand('selectall', null, \"false\"); });\r\n };\r\n\r\n getMovements(clientId: number) {\r\n this.movementsService.getMovements(0, clientId, 1, 0, 0, 1, 'DESC', 1).subscribe(resp => {\r\n if (resp.errors.length == 0) {\r\n this.listOfMovements = resp.movementDetails.movements;\r\n\r\n //check if any contacts are listed in movements\r\n this.listOfMovements.forEach(movement => {\r\n\r\n this.listOfMovementIds.push(movement.outOfOfficeId)\r\n\r\n });\r\n\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n });\r\n }\r\n\r\n getTemplates(clientId: number) {\r\n this.templatesService.getTemplates(0, '0', this.officeId, clientId, 0, 1).subscribe(resp => {\r\n if (resp.errors.length == 0) {\r\n this.listOfTemplates = resp.templates;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n\r\n });\r\n }\r\n\r\n callerUpdate(callerData){\r\n \r\n this.callerLength = callerData.length;\r\n\r\n }\r\n\r\n phoneUpdate(phoneData){\r\n \r\n this.phoneLength = phoneData.length;\r\n\r\n }\r\n\r\n companyUpdate(companyData){\r\n\r\n\r\n if(companyData.length === 0){\r\n this.companyLength = 0;\r\n }else{\r\n this.companyLength = companyData.length + 10;\r\n }\r\n }\r\n emailUpdate(emailData){\r\n\r\n if(emailData.length === 0){\r\n this.emailLength = 0;\r\n }else{\r\n this.emailLength = emailData.length + 8;\r\n }\r\n\r\n }\r\n referenceUpdate(referenceData){\r\n\r\n if(referenceData.length === 0){\r\n this.referenceLength = 0;\r\n }else{\r\n this.referenceLength = referenceData.length +12;\r\n }\r\n\r\n \r\n\r\n \r\n }\r\n\r\n\r\n getDeliveryType() {\r\n this.clientsContactsService.getDeliveryType(0, '0', 1).subscribe(resp => {\r\n if (resp.errors.length == 0) {\r\n this.listOfDelivery = resp.deliveryTypes;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n\r\n });\r\n }\r\n getMessages(clientId: number) {\r\n\r\n\r\n this.messageSearchData.clientId = clientId;\r\n\r\n this.messagesService.getMessages(this.messageSearchData).subscribe(resp => {\r\n //this.listOfMessages = new MessageData();\r\n\r\n if (resp.errors.length == 0) {\r\n this.listOfMessages = resp.messageDetails.messages;\r\n this.noOfMessages = resp.messageDetails.totalCount;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n getContact(contact: Contact) {\r\n this.clientsContactsService.getContacts(contact.contactId, '0', 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n\r\n if (resp.errors.length == 0) {\r\n this.contactInfo = resp.contactDetails.contacts[0];\r\n console.log(this.contactInfo)\r\n this.newMessage.isEod = resp.contactDetails.contacts[0].isEmailAddress1Eod;\r\n this.rForm.controls['deliveryTypeId'].setValue(this.contactInfo.deliveryTypeId);\r\n this.newMessage.messageFor = this.contactInfo.fullName;\r\n this.contactInfo = resp.contactDetails.contacts[0];\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n }\r\n\r\n });\r\n }\r\n setClient(client: any) {\r\n console.log(client);\r\n this.getMessages(client.clientId);\r\n this.listOfMessages = [];\r\n this.contactInfo = new Contact();\r\n\r\n this.newMessage.messageFor = '';\r\n this.rForm.controls['dateTaken'].setValue(moment().toDate());\r\n this.hour = Number(moment().format('HH'));\r\n\r\n this.minute = Number(moment().format('mm'));\r\n this.rForm.controls['hour'].setValue(this.hour);\r\n this.rForm.controls['minute'].setValue(this.minute);\r\n\r\n const contactField = this.rForm.get('contactId');\r\n const templateId = this.rForm.get('templateId');\r\n\r\n if (client.clientId > 0) {\r\n this.newMessage.clientId = client.clientId;\r\n this.clientId = client.clientId;\r\n contactField.enable();\r\n templateId.enable();\r\n this.getClients(client.clientId, '0', '0', 0, 0, 1);\r\n\r\n this.getMovements(client.clientId);\r\n this.getTemplates(client.clientId);\r\n\r\n this.selectedClientId = client.clientId;\r\n\r\n this.newMessage.contactId = null;\r\n //get client details\r\n } else {\r\n contactField.disable();\r\n templateId.disable();\r\n contactField.setValue('');\r\n }\r\n }\r\n setContact(contactTemp: any) {\r\n console.log(\"set contact called\")\r\n let contact = contactTemp.value;\r\n\r\n console.log(contact)\r\n const callerField = this.rForm.get('callerName');\r\n const messageFor = this.rForm.get('messageFor');\r\n\r\n if (contact.contactId > 0) {\r\n\r\n if(this.beforeMovement.contactId > 0){\r\n //this.undoMovement();\r\n }\r\n\r\n this.newMessage.contactId = contact.contactId;\r\n\r\n this.beforeMovement = contact;\r\n\r\n this.selectedContact = contact;\r\n\r\n this.newMessage.messageFor = contact.fullName;\r\n this.contactInfo = contact;\r\n console.log(this.contactInfo)\r\n this.newMessage.isEod = contact.isEmailAddress1Eod;\r\n this.rForm.controls['deliveryTypeId'].setValue(contact.deliveryTypeId);\r\n\r\n \r\n if (this.listOfMovementIds.includes(contact.contactId)) {\r\n\r\n\r\n console.log(this.listOfMovements.find(e => e.outOfOfficeId === contact.contactId));\r\n //change to this user\r\n this.contactMovement = this.listOfMovements.find(e => e.outOfOfficeId === contact.contactId);\r\n\r\n\r\n this.outOfOfficeContact =this.listOfContacts.find(e => e.contactId === this.contactMovement.forwardToId);\r\n this.rForm.controls['contactId'].setValue(this.outOfOfficeContact );\r\n \r\n\r\n this.clientsContactsService.getContacts(this.contactMovement.forwardToId, '0', 0, 0, 0, 0, 1, 'ASC', 1).subscribe(resp => {\r\n this.rForm.controls['deliveryTypeId'].setValue(resp.contactDetails.contacts[0].deliveryTypeId);\r\n this.selectedContact = resp.contactDetails.contacts[0];\r\n this.contactInfo = resp.contactDetails.contacts[0];\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n } else {\r\n\r\n }\r\n }\r\n\r\n\r\n setTemplate(template) {\r\n //console.log(template);\r\n if (template.templateId > 0) {\r\n this.newMessage.message = template.message;\r\n }\r\n }\r\n\r\n reset() {\r\n this.rForm.reset();\r\n this.rForm.markAsPristine();\r\n this.rForm.markAsUntouched();\r\n\r\n this.newMessage = new NewMessage();\r\n this.myControlContacts.setValue({ contactId: null, contactName: null });\r\n this.listOfContacts = null;\r\n this.rForm.controls['messageTypeId'].setValue(1);\r\n this.filteredClients = null;\r\n this.filteredContacts = null;\r\n this.selectedContact = new Contact();\r\n this.viewClientData = false;\r\n this.rForm.controls['dateTaken'].setValue(moment());\r\n\r\n this.contactInfo = new Contact();\r\n let i: number = 0;\r\n\r\n for (i = 0; i < 60; i++) {\r\n if (i < 10) {\r\n this.minutes.push({ id: i, viewValue: '0' + i });\r\n } else {\r\n this.minutes.push({ id: i, viewValue: String(i) });\r\n }\r\n }\r\n\r\n this.hour = Number(moment().format('HH'));\r\n\r\n this.minute = Number(moment().format('mm'));\r\n this.rForm.controls['hour'].setValue(this.hour);\r\n this.rForm.controls['minute'].setValue(this.minute);\r\n\r\n this.contactMovement = null;\r\n }\r\n\r\n viewContactDialog(contacts): void {\r\n\r\n let dialogRef = this.dialog.open(ViewContactsDialogComponent, {\r\n width: '80%',\r\n data: { contactsData: contacts }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n console.log(result)\r\n if (result.value.contactId > 0) {\r\n this.newMessage.contactId = result.value.contactId;\r\n console.log(result.value)\r\n this.rForm.controls['contactId'].setValue(result.value);\r\n this.newMessage.messageFor = result.value.fullName;\r\n let contactTemp = { 'value': result.value }\r\n this.setContact(result)\r\n }\r\n });\r\n\r\n }\r\n\r\n viewMessagesDialog(message): void {\r\n\r\n let dialogRef = this.dialog.open(ViewMessageDialogComponent, {\r\n width: '1000px',\r\n data: { messageData: message }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n });\r\n\r\n }\r\n\r\n\r\n copyLink(text: string) {\r\n var event = (e: ClipboardEvent) => {\r\n e.clipboardData.setData('text/plain', text);\r\n e.preventDefault();\r\n document.removeEventListener('copy', event);\r\n this.openSnackBar(\"Copied to clipboard\");\r\n }\r\n document.addEventListener('copy', event);\r\n document.execCommand('copy');\r\n }\r\n\r\n confirmPatchDialog(post): void {\r\n\r\n if (post.deliveryTypeId == 4) {\r\n let dialogRef = this.dialog.open(ConfirmPatchDialogComponent, {\r\n width: '1000px',\r\n data: { post: post }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n if (result === null) {\r\n\r\n } else {\r\n this.sendMessage(this.rForm.value);\r\n }\r\n\r\n });\r\n } else {\r\n this.sendMessage(this.rForm.value);\r\n }\r\n }\r\n sendMessage(post: any) {\r\n\r\n console.log(post);\r\n\r\n let tempLimit = Number(this.smsLimit) - (Number(this.callerLength) + Number(this.phoneLength) + Number(this.companyLength) + Number(this.emailLength) + Number(this.referenceLength));\r\n\r\n if(this.newMessage.deliveryTypeId === 1 && this.newMessage.message.length + this.callerLength + this.phoneLength + this.companyLength + this.emailLength + this.referenceLength > this.smsLimit || this.newMessage.deliveryTypeId === 3 && this.newMessage.message.length + this.callerLength + this.phoneLength + this.companyLength + this.emailLength + this.referenceLength > this.smsLimit){\r\n this.openSnackBarError(\"Message is too long for SMS delivery, please edit to be \" + tempLimit + \" characters or less.\");\r\n }else{\r\n\r\n this.showForm = false;\r\n this.openSnackBarError(\"Sending Message...\");\r\n\r\n this.newMessage.clientId = this.selectedClient.clientId;\r\n this.newMessage.dateTaken = moment(post.dateTaken).set('hour', this.hour).set('minutes', this.minute)\r\n this.newMessage.dateTaken = moment(this.newMessage.dateTaken);\r\n\r\n this.newMessage.contactId = this.selectedContact.contactId;\r\n this.newMessage.messageTypeId = 1;\r\n\r\n if (post.callerName.callerName) {\r\n this.newMessage.callerName = post.callerName.callerName;\r\n } else {\r\n this.newMessage.callerName = post.callerName;\r\n }\r\n\r\n if (post.phoneNo == null) {\r\n this.newMessage.phoneNo = '';\r\n } else {\r\n this.newMessage.phoneNo = post.phoneNo;\r\n }\r\n if (post.email == null) {\r\n this.newMessage.email = '';\r\n } else {\r\n this.newMessage.email = post.email;\r\n }\r\n if (post.reference == null) {\r\n this.newMessage.reference = '';\r\n } else {\r\n this.newMessage.reference = post.reference;\r\n }\r\n if (post.company == null) {\r\n this.newMessage.company = '';\r\n } else {\r\n this.newMessage.company = post.company;\r\n }\r\n\r\n let successString: string = '';\r\n //get delivery method\r\n if (this.newMessage.deliveryTypeId == 1) {\r\n\r\n successString = \"Message successfully sent via SMS to \" + this.contactInfo.mobileNo;\r\n\r\n } else if (this.newMessage.deliveryTypeId == 2) {\r\n\r\n successString = \"Message successfully sent via Email to \" + this.contactInfo.emailAddress1;\r\n\r\n } else if (this.newMessage.deliveryTypeId == 3) {\r\n\r\n successString = \"Message successfully sent via SMS Email to \" + this.contactInfo.mobileNo + \" and \" + this.contactInfo.emailAddress1;\r\n\r\n } else if (this.newMessage.deliveryTypeId == 4) {\r\n\r\n successString = \"Call patch saved.\";\r\n\r\n } else if (this.newMessage.deliveryTypeId == 4) {\r\n\r\n successString = \"Message saved as No Message.\";\r\n\r\n } else if (this.newMessage.deliveryTypeId == 5) {\r\n\r\n successString = \"Message saved as No Message.\";\r\n\r\n }\r\n this.newMessage.isEod = true;\r\n //get details\r\n\r\n\r\n\r\n this.messagesService.sendMessage(this.newMessage).subscribe(resp => {\r\n\r\n if (resp.errors.length == 0) {\r\n this.openSnackBar(successString);\r\n if (this.navRoleJournal) {\r\n this.journalsService.getJournals(this.me.userId, 0, 0, 0, 0, 1).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBarError(resp.errors[0].error);\r\n } else {\r\n console.log(\"message action : \" + resp.messageId.totalCount);\r\n\r\n //this.journalsService.updateJournal(resp);\r\n\r\n }\r\n });\r\n }\r\n //this.reset();\r\n this.reset();\r\n\r\n this.showForm = true;\r\n } else {\r\n this.openSnackBarError(resp.errors[0].error);\r\n this.showForm = true;\r\n }\r\n\r\n });\r\n }\r\n\r\n }\r\n\r\n public submit(data, event) {\r\n switch (event) {\r\n case 'GET': this.confirmPatchDialog(data); break;\r\n case 'POST': this.reset(); break;\r\n default: break;\r\n }\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJyYWlzZS1jcmVkaXQtbm90ZS1kaWFsb2cuY29tcG9uZW50LmNzcyJ9 */\";","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { MovementsService } from '../../services/movements.service';\r\nimport { MovementDetails, MovementData, Movements, Movement } from '../../models/movementData';\r\n\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { ContactData, ContactDetails, Contacts, Contact, ContactsAutocomplete, ContactAutocomplete } from '../../models/contactData';\r\n\r\n@Component({\r\n selector: 'app-view-movement-dialog',\r\n templateUrl: './view-movement-dialog.component.html',\r\n styleUrls: ['./view-movement-dialog.component.css'],\r\n providers: [MovementsService, ClientsContactsService]\r\n})\r\nexport class ViewMovementDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n newMovement: Movement;\r\n myControlContacts: FormControl = new FormControl();\r\n myControlContacts2: FormControl = new FormControl();\r\n filteredContacts: ContactAutocomplete[] = [];\r\n filteredContacts2: ContactAutocomplete[] = [];\r\n selectedClientId: number;\r\n movementData: Movement;\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, private fb: FormBuilder, public snackBar: MatSnackBar, public movementsService: MovementsService, public clientsContactsService: ClientsContactsService) {\r\n \r\n\r\n this.rForm = fb.group({\r\n\r\n 'clientId': [null],\r\n 'notes': [null],\r\n 'startDate': [moment().toDate(), Validators.required],\r\n 'endDate': [moment().toDate(), Validators.required],\r\n 'outOfOfficeId': [null],\r\n 'forwardToId': [null],\r\n 'isActive':[null]\r\n });\r\n\r\n this.myControlContacts.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlContacts.value);\r\n if (this.myControlContacts.value === '' || typeof this.myControlContacts.value != 'string') {\r\n return this.filteredContacts = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.myControlContacts.value, 0, this.selectedClientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts = res.contacts\r\n })\r\n }\r\n\r\n });\r\n\r\n\r\n\r\n this.myControlContacts2.valueChanges\r\n .subscribe(name => {\r\n console.log(this.myControlContacts2.value);\r\n if (this.myControlContacts2.value === '' || typeof this.myControlContacts2.value != 'string') {\r\n return this.filteredContacts2 = null;\r\n } else {\r\n this.clientsContactsService.getContactsAutocomplete(this.myControlContacts2.value, 0, this.selectedClientId, 0)\r\n .subscribe(res => {\r\n return this.filteredContacts2 = res.contacts\r\n })\r\n }\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.movementData = this.data.movementData;\r\n this.myControlContacts.setValue({contactId: this.movementData.outOfOfficeId, contactName: this.movementData.outOfOffice });\r\n this.myControlContacts2.setValue({contactId: this.movementData.forwardToId, contactName: this.movementData.forwardTo });\r\n this.selectedClientId = this.data.movementData.clientId;\r\n this.rForm.controls['startDate'].setValue(moment(this.data.movementData.startDate).toDate());\r\n this.rForm.controls['endDate'].setValue(moment(this.data.movementData.endDate).toDate());\r\n\r\n }\r\n displayFnContacts(contact: ContactAutocomplete): any {\r\n return contact ? contact.contactName : contact;\r\n }\r\n\r\n setOutofOffice(contact) {\r\n if (contact.contactId > 0) {\r\n this.movementData.outOfOfficeId = contact.contactId;\r\n }\r\n\r\n\r\n }\r\n setForwardTo(contact) {\r\n\r\n if (contact.contactId > 0) {\r\n this.movementData.forwardToId = contact.contactId;\r\n }\r\n\r\n }\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n\r\n updateMovement(post) {\r\n if (moment(post.startDate).isValid()) {\r\n this.movementData.startDate = post.startDate;\r\n }\r\n if (moment(post.endDate).isValid()) {\r\n this.movementData.endDate = post.endDate;\r\n }\r\nif( this.myControlContacts.value.contactId >0){\r\n\r\n this.movementData.outOfOfficeId = this.myControlContacts.value.contactId;\r\n}\r\nif( this.myControlContacts2.value.contactId >0){\r\n \r\n this.movementData.forwardToId = this.myControlContacts2.value.contactId;\r\n }\r\n\r\n this.movementsService.updateMovements(this.movementData.movementId, this.movementData).subscribe(resp => {\r\n\r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Movement Updated\");\r\n this.dialogRef.close();\r\n\r\n }\r\n });\r\n\r\n\r\n }\r\n}\r\n","export default \"
\\r\\n
\\r\\n

Head Office Admin

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJtZXNzYWdlLXN0YXRzLmNvbXBvbmVudC5jc3MifQ== */\";","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, RouterModule, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { PageEvent } from '@angular/material/paginator';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\nimport { ClientData, ClientDetails, Clients, Client, ClientsAutocomplete, ClientAutocomplete } from '../../models/clientData';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { TaxData, TaxCodes, TaxCode } from '../../models/taxData';\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, InvoiceSettingsData, AddInvoiceData, AddInvoicePOST, AddLinePOST, AddLineItem } from '../../models/invoiceData';\r\nimport { ProductTypesData, ProductTypes, ProductType } from '../../models/productTypesData';\r\n\r\n\r\n@Component({\r\n selector: 'app-add-line-item-dialog',\r\n templateUrl: './add-line-item-dialog.component.html',\r\n styleUrls: ['./add-line-item-dialog.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [InvoicingService, ClientsContactsService]\r\n})\r\nexport class AddLineItemDialogComponent implements OnInit {\r\n newLineItem: AddLineItem;\r\n rForm: FormGroup;\r\n productTypes: ProductType[] = [];\r\n listOfProducts: Product[] = [];\r\n officeId: number = 1;\r\n listOfTaxCodes: TaxCode[] = [];\r\n productTypeId: number;\r\n loading: boolean = false;\r\n isVATExempt: boolean = false;\r\n clientDetails: Client;\r\n\r\n constructor(public clientsContactsService: ClientsContactsService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar, public dialog: MatDialog, private fb: FormBuilder) {\r\n\r\n\r\n this.rForm = fb.group({\r\n 'quantity': [1, Validators.required],\r\n 'productTypeId': [null, Validators.required],\r\n 'productId': [null, Validators.required],\r\n 'description': [null, Validators.required],\r\n 'unitPrice': [null, Validators.required],\r\n 'isActive': true,\r\n 'taxId': [null, Validators.required],\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.clientDetails = new Client();\r\n this.newLineItem = new AddLineItem();\r\n\r\n this.newLineItem.isActive = true;\r\n this.newLineItem.quantity = 1;\r\n this.newLineItem.invoiceId = this.data.invoice.invoiceId;\r\n this.officeId = this.data.invoice.officeId;\r\n this.getProductTypes();\r\n this.getTaxCode();\r\n\r\n this.clientDetails = this.data.client;\r\n this.isVATExempt = this.clientDetails.isVatExempt;\r\n\r\n if(this.isVATExempt){\r\n this.newLineItem.taxId = 2;\r\n }else{\r\n this.newLineItem.taxId = 1;\r\n }\r\n }\r\n\r\n getTaxCode() {\r\n\r\n this.clientsContactsService.getTaxCode(0, 0, 1).subscribe(resp => {\r\n\r\n this.listOfTaxCodes = resp.taxCodes;\r\n })\r\n }\r\n\r\n getProductTypes() {\r\n\r\n this.invoicingService.getProductTypes(0, 0, 1).subscribe(resp => {\r\n\r\n this.productTypes = resp.productTypes;\r\n\r\n })\r\n }\r\n\r\n getProducts(productTypeId: any) {\r\n console.log(productTypeId);\r\n\r\n if (productTypeId > 0) {\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, productTypeId, this.officeId, 0, 1, 1, 1, 'ASC', 0).subscribe(resp => {\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n this.listOfProducts = resp.invoiceProducts.products;\r\n } \r\n })\r\n }\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n updateValues(product: Product){\r\nconsole.log(product);\r\n this.newLineItem.unitPrice = product.unitCost;\r\n this.newLineItem.description = product.description;\r\n //this.newLineItem.taxId = product.taxId;\r\n\r\n }\r\n\r\n addLineItem(post) {\r\nthis.loading = true;\r\n this.invoicingService.addLineItem(this.newLineItem).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.loading = false;\r\n } else {\r\n\r\n this.openSnackBar(\"Line Item added\");\r\n this.loading = false;\r\n this.dialogRef.close();\r\n }\r\n\r\n })\r\n\r\n }\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport {MatDialog, MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog';\r\nimport {Observable} from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\n\r\nimport { TemplatesService } from '../../services/templates.service';\r\nimport { ClientsContactsService } from '../../services/clients-contacts.service';\r\n\r\n\r\nimport { ClientData, ClientAutocomplete } from '../../models/clientData';\r\n\r\nimport { TemplateData, Templates, Template } from '../../models/templateData';\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\n@Component({\r\n selector: 'app-view-template-dialog',\r\n templateUrl: './view-template-dialog.component.html',\r\n styleUrls: ['./view-template-dialog.component.css'],\r\n providers: [TemplatesService, ClientsContactsService]\r\n})\r\nexport class ViewTemplateDialogComponent implements OnInit {\r\n rForm: FormGroup;\r\n templateData: Template;\r\n filteredClients: ClientAutocomplete[] = [];\r\n officeIdSubject: Observable;\r\n officeId: number;\r\n\r\n myControl: FormControl = new FormControl();\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public userSessionService: UserSessionService, public clientsContactsService: ClientsContactsService, private fb:FormBuilder, public templatesService:TemplatesService, public snackBar: MatSnackBar) { \r\n\r\n this.officeIdSubject = userSessionService.getOfficeId();\r\n\r\n this.rForm = fb.group({\r\n \r\n 'message': [null, Validators.required],\r\n 'officeId': [null],\r\n 'clientId': [null], \r\n 'isGlobal': [true, Validators.required],\r\n 'deliveryTypeId' : [1],\r\n 'isActive': [true, Validators.required],\r\n 'clientOwner': fb.group({\r\n 'clientId': [null], \r\n 'clientName': [null], \r\n })\r\n\r\n });\r\n\r\n\r\n this.myControl.valueChanges\r\n .subscribe(name => {\r\n //console.log(this.rForm.controls['clientOwner'].value);\r\n if (this.myControl.value === '' || typeof this.myControl.value != 'string') {\r\n return this.filteredClients = null;\r\n } else {\r\n this.clientsContactsService.getClientsAutocomplete(this.myControl.value, 0, this.officeId, 0, 0)\r\n .subscribe(res => {\r\n return this.filteredClients = res.clients\r\n })\r\n }\r\n \r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.officeIdSubject.subscribe(id => this.officeId = Number(id));\r\n this.templateData = this.data.templateData;\r\n //this.filteredClients.push({clientId: this.templateData.clientId, clientName: this.templateData.clientName});\r\n //this.rForm.controls['clientOwner.clientId'].setValue(this.templateData.clientId);\r\n this.myControl.setValue({clientId: this.templateData.clientId, clientName: this.templateData.clientName});\r\n //this.rForm.patchValue({clientOwner: {clientId: this.templateData.clientId }});\r\n //this.rForm.patchValue({clientOwner: {clientName: this.templateData.clientName }});\r\n }\r\n\r\n displayFnClients(client: ClientAutocomplete): any {\r\n return client ? client.clientName : client;\r\n }\r\n globalChange(event: Event) {\r\n const ctrl = this.rForm.get('clientId');\r\n \r\n if (event) {\r\n this.templateData.clientId= null;\r\n this.myControl.setValue({clientId: null, clientName: ''});\r\n this.myControl.disable();\r\n ctrl.setValue(null);\r\n } else {\r\n \r\n this.myControl.enable();\r\n }\r\n }\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n setClient(client) {\r\n \r\n //const contactField = this.rForm.get('contactId');\r\n //const templateId = this.rForm.get('templateId');\r\n \r\n if (client.clientId > 0) {\r\n this.templateData.clientId = client.clientId;\r\n }\r\n }\r\n updateTemplate(post){\r\n this.templatesService.updateTemplates(this.templateData.templateId, this.templateData).subscribe(resp => {\r\n \r\n //this.addInfo = resp;\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n \r\n this.openSnackBar(\"Template updated\");\r\n this.dialogRef.close();\r\n \r\n }\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, Inject, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router, ActivatedRoute, Params } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { FormControl, FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport * as moment from 'moment';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\nimport { InvoiceData, Invoices, Invoice, LineItems, AddInvoiceData } from '../../models/invoiceData';\r\n\r\n@Component({\r\n selector: 'app-add-credit-note-dialog',\r\n templateUrl: './add-credit-note-dialog.component.html',\r\n styleUrls: ['./add-credit-note-dialog.component.css'],\r\n providers: [InvoicingService]\r\n})\r\nexport class AddCreditNoteDialogComponent implements OnInit {\r\n clientId: number = 0;\r\n\r\n constructor(private router: Router, private route: ActivatedRoute, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any, public invoicingService: InvoicingService, public snackBar: MatSnackBar) { }\r\n\r\n ngOnInit() {\r\n this.clientId = this.data.clientId;\r\n }\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n add(clientId: number) {\r\n\r\n this.invoicingService.raiseBlankCreditNote(clientId).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.openSnackBar(\"Credit note created\");\r\n this.router.navigate(['/invoicing/invoice/' + resp.invoiceId]);\r\n this.dialogRef.close();\r\n\r\n }\r\n })\r\n }\r\n}\r\n","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjbGllbnQtbW92ZW1lbnRzLmNvbXBvbmVudC5jc3MifQ== */\";","export default \"\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n account_box\\r\\n My account\\r\\n \\r\\n \\r\\n exit_to_app\\r\\n Log out\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n account_box\\r\\n My account\\r\\n \\r\\n \\r\\n exit_to_app\\r\\n Log out\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Messages\\r\\n Clients\\r\\n Invoicing\\r\\n {{me.officeName}}\\r\\n Reporting\\r\\n Head Office\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Messages\\r\\n Clients\\r\\n Invoicing\\r\\n {{me.officeName}}\\r\\n Reporting\\r\\n Head Office\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n account_box\\r\\n My account\\r\\n \\r\\n \\r\\n exit_to_app\\r\\n Log out\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\";","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { Location } from '@angular/common';\r\nimport { Observable } from 'rxjs';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\n\r\n\r\n\r\nimport { OfficesUsersRolesService } from '../../services/offices-users-roles.service';\r\n\r\nimport { OfficeData, OfficeDetails, Offices, Office } from '../../models/officeData';\r\n\r\nimport { ViewNoticeDialogComponent } from '../../components/view-notice-dialog/view-notice-dialog.component';\r\n\r\nimport { EndOfDayDialogComponent } from '../../components/end-of-day-dialog/end-of-day-dialog.component';\r\n\r\nimport { NoticeData, NoticeDetails, NoticeDetail } from '../../models/noticeData';\r\n\r\n@Component({\r\n selector: 'app-notices',\r\n templateUrl: './notices.component.html',\r\n styleUrls: ['./notices.component.css'],\r\n providers: [OfficesUsersRolesService]\r\n})\r\nexport class NoticesComponent implements OnInit {\r\n listOfNotice: NoticeDetail[] = [];\r\n officeId: number = 0;\r\n\r\n isActiveFilter:number = 1;\r\n activeStates = [\r\n {value: 0, viewValue: 'All'},\r\n {value: 1, viewValue: 'Active'},\r\n {value: 2, viewValue: 'Inactive'}\r\n ];\r\n\r\n constructor(public officesUsersRolesService: OfficesUsersRolesService, public snackBar: MatSnackBar, public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n\r\n //this.getNotices(this.officeId, this.isActiveFilter);\r\n }\r\n\r\n\r\n sendEndOfDay(officeId): void {\r\n\r\n let dialogRef = this.dialog.open(EndOfDayDialogComponent, {\r\n width: '500px',\r\n data: { officeId: officeId}\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n\r\n console.log(result);\r\n });\r\n\r\n }\r\n\r\n\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n getNotices(officeId: number, active: number) {\r\n this.officesUsersRolesService.getNotices(0, officeId, active).subscribe(resp => {\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n } else {\r\n\r\n this.listOfNotice = resp.notices;\r\n }\r\n });\r\n }\r\n\r\n reset(){\r\n this.isActiveFilter = 1;\r\n this.getNotices(this.officeId, this.isActiveFilter);\r\n\r\n }\r\n viewNoticeDialog(notice): void {\r\n \r\n let dialogRef = this.dialog.open(ViewNoticeDialogComponent, {\r\n width: '1000px',\r\n data: { noticeData: notice }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n });\r\n \r\n }\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { Observable } from 'rxjs';\r\n\r\n\r\n\r\nimport { UserSessionService } from '../../services/user-session.service';\r\n\r\nimport { InvoicingService } from '../../services/invoicing.service';\r\n\r\nimport { InvoiceProductsData, InvoiceProducts, Products, Product } from '../../models/invoicingProductsData';\r\nimport { ProductTypesData, ProductTypes, ProductType } from '../../models/productTypesData';\r\n\r\nimport { ViewInvoiceProductDialogComponent } from '../../components/view-invoice-product-dialog/view-invoice-product-dialog.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-invoicing-products',\r\n templateUrl: './invoicing-products.component.html',\r\n styleUrls: ['./invoicing-products.component.css'],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [UserSessionService, InvoicingService]\r\n})\r\nexport class InvoicingProductsComponent implements OnInit {\r\n\r\n\r\n listOfProducts: Products[] = [];\r\n listOfProductTypes: ProductType[] = [];\r\n noOfProducts: number = 0;\r\n productTypeId: number = 0;\r\n pageNo: number = 0;\r\n\r\n isActiveFilter: number = 1;\r\n\r\n productStates = [\r\n { value: 0, viewValue: 'Any' }\r\n ];\r\n activeStates = [\r\n { value: 0, viewValue: 'All' },\r\n { value: 1, viewValue: 'Active' },\r\n { value: 2, viewValue: 'Inactive' }\r\n ];\r\n\r\n constructor(public userSessionService: UserSessionService, public invoicingService: InvoicingService, public snackBar: MatSnackBar, public dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n\r\n this.getInvoicingProducts(this.productTypeId, this.isActiveFilter, 1);\r\n this.getProductTypes();\r\n }\r\n\r\n\r\n public getInvoicingProducts(productTypeId: number, isActive: number, pageNo: number) {\r\n\r\n this.invoicingService.getInvoiceProduct(0, 0, 0, productTypeId, 0, 0, isActive, 0, 1, 'ASC', pageNo).subscribe(resp => {\r\n\r\n\r\n if (resp.errors.length > 0) {\r\n this.openSnackBar(resp.errors[0].error);\r\n this.userSessionService.checkToken().subscribe();\r\n } else {\r\n\r\n this.listOfProducts = resp.invoiceProducts.products;\r\n this.noOfProducts = resp.invoiceProducts.totalCount;\r\n }\r\n })\r\n\r\n }\r\n setPage(event) {\r\n console.log(event);\r\n this.pageNo = event.pageIndex;\r\n\r\n this.getInvoicingProducts(this.productTypeId, this.isActiveFilter, event.pageIndex + 1);\r\n }\r\n getProductTypes() {\r\n\r\n this.invoicingService.getProductTypes(0, 0, 1).subscribe(resp => {\r\n\r\n this.listOfProductTypes = resp.productTypes;\r\n\r\n this.listOfProductTypes.forEach((type, i) => {\r\n\r\n this.productStates.push({ value: i + 1, viewValue: type.name });\r\n\r\n });\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n openSnackBar(message: string) {\r\n this.snackBar.open(message, \"close\", {\r\n duration: 2500,\r\n });\r\n }\r\n\r\n reset() {\r\n\r\n this.productTypeId = 0;\r\n this.isActiveFilter = 1;\r\n this.getInvoicingProducts(this.productTypeId, this.isActiveFilter, 1);\r\n\r\n }\r\n\r\n\r\n\r\n viewInvoiceProductDialog(product): void {\r\n\r\n let dialogRef = this.dialog.open(ViewInvoiceProductDialogComponent, {\r\n width: '1000px',\r\n data: { product: product }\r\n });\r\n dialogRef.afterClosed().subscribe(result => {\r\n this.getInvoicingProducts(this.productTypeId, this.isActiveFilter, 1);\r\n console.log(result);\r\n //this.usersComponent.triggerUpdate();\r\n });\r\n\r\n }\r\n}\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule);\r\n","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"zn8P\";","export default \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJjaGFuZ2UtaW52b2ljZS10YXJpZmYtZGlhbG9nLmNvbXBvbmVudC5jc3MifQ== */\";"]}