{"version":3,"sources":["./src/app/components/add-contact-dialog/add-contact-dialog.component.css","./src/app/components/add-template-dialog/add-template-dialog.component.html","./src/app/components/end-of-day-dialog/end-of-day-dialog.component.css","./src/app/components/page-not-found/page-not-found.component.html","./src/app/components/add-user-dialog/add-user-dialog.component.ts","./src/app/components/view-message-dialog/view-message-dialog.component.ts","./src/app/components/message-stats/message-stats.component.html","./src/app/components/home/home.component.css","./src/app/components/email-invoice-dialog/email-invoice-dialog.component.html","./src/app/components/email-invoice-dialog/email-invoice-dialog.component.css","./src/app/components/offices/offices.component.html","./src/app/components/templates/templates.component.css","./src/app/components/end-of-day-dialog/end-of-day-dialog.component.ts","./src/app/components/confirm-patch-dialog/confirm-patch-dialog.component.ts","./src/app/components/assign-recurring-product-dialog/assign-recurring-product-dialog.component.ts","./src/app/components/add-notice-dialog/add-notice-dialog.component.ts","./src/app/components/client-movements/client-movements.component.html","./src/app/app-settings.ts","./src/app/components/header/header.component.ts","./src/app/components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component.css","./src/app/components/add-invoice-product-dialog/add-invoice-product-dialog.component.css","./src/app/components/my-account/my-account.component.ts","./src/app/components/client-invoicing/client-invoicing.component.html","./src/app/components/finalise-invoice-dialog/finalise-invoice-dialog.component.ts","./src/app/components/templates/templates.component.ts","./src/app/services/movements.service.ts","./src/app/components/invoice-settings/invoice-settings.component.html","./src/app/components/view-notice-dialog/view-notice-dialog.component.css","./src/app/components/view-message-dialog/view-message-dialog.component.html","./src/app/components/view-invoice-product-dialog/view-invoice-product-dialog.component.html","./src/app/components/view-invoice-product-dialog/view-invoice-product-dialog.component.ts","./src/app/models/contactData.ts","./src/app/components/client-templates/client-templates.component.ts","./src/app/components/my-account/my-account.component.css","./src/app/components/message-stats/message-stats.component.ts","./src/app/components/invoice-settings/invoice-settings.component.ts","./src/app/components/contacts-detail/contacts-detail.component.css","./src/app/components/contacts/contacts.component.html","./src/app/models/officeData.ts","./src/app/components/finalise-invoice-dialog/finalise-invoice-dialog.component.css","./src/app/components/add-office-dialog/add-office-dialog.component.css","./src/app/components/add-credit-note-dialog/add-credit-note-dialog.component.html","./src/app/services/reporting.service.ts","./src/app/components/clients/clients.component.html","./src/app/components/clients/clients.component.ts","./src/app/components/client-recurring-products/client-recurring-products.component.css","./src/app/components/notices/notices.component.html","./src/app/app.component.css","./src/app/models/clientData.ts","./src/app/components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component.ts","./src/environments/environment.ts","./src/app/components/messages/messages.component.css","./src/app/components/client-templates/client-templates.component.html","./src/app/components/home/home.component.ts","./src/app/components/reset/reset.component.css","./src/app/components/view-message-dialog/view-message-dialog.component.css","./src/app/components/print-invoice/print-invoice.component.html","./src/app/components/print-invoice/print-invoice.component.ts","./src/app/components/invoicing-detail/invoicing-detail.component.html","./src/app/components/add-line-item-dialog/add-line-item-dialog.component.html","./src/app/auth.interceptor.ts","./src/app/services/login.service.ts","./src/app/components/journals/journals.component.html","./src/app/components/invoice-settings/invoice-settings.component.css","./src/app/components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component.html","./src/app/components/finalise-invoice-dialog/finalise-invoice-dialog.component.html","./src/app/components/user-detail/user-detail.component.html","./src/app/components/complete-invoice-dialog/complete-invoice-dialog.component.ts","./src/app/components/page-not-found/page-not-found.component.css","./src/app/components/add-movement-dialog/add-movement-dialog.component.css","./src/app/models/meData.ts","./src/app/components/client-sent-invoices/client-sent-invoices.component.html","./src/app/components/add-line-item-dialog/add-line-item-dialog.component.css","./src/app/components/change-invoice-date-dialog/change-invoice-date-dialog.component.ts","./src/app/reuse-strategy.ts","./src/app/models/messageData.ts","./src/app/components/users/users.component.ts","./src/app/components/void-invoice-dialog/void-invoice-dialog.component.html","./src/app/services/messages.service.ts","./src/app/components/view-line-item-dialog/view-line-item-dialog.component.html","./src/app/components/add-client-dialog/add-client-dialog.component.ts","./src/app/components/invoicing-products/invoicing-products.component.html","./src/app/components/complete-invoice-dialog/complete-invoice-dialog.component.css","./src/app/components/reporting/reporting.component.ts","./src/app/components/delete-line-item-dialog/delete-line-item-dialog.component.css","./src/app/components/office-clients/office-clients.component.html","./src/app/services/invoicing.service.ts","./src/app/components/page-not-found/page-not-found.component.ts","./src/app/components/outbox/outbox.component.html","./src/app/components/view-line-item-dialog/view-line-item-dialog.component.css","./src/app/components/reset/reset.component.html","./src/app/components/client-recurring-products/client-recurring-products.component.html","./src/app/components/add-office-dialog/add-office-dialog.component.html","./src/app/models/movementData.ts","./src/app/components/add-invoice-dialog/add-invoice-dialog.component.ts","./src/app/components/contacts/contacts.component.ts","./src/app/services/journals.service.ts","./src/app/models/noticeData.ts","./src/app/components/templates/templates.component.html","./src/app/components/add-contact-dialog/add-contact-dialog.component.html","./src/app/components/user-detail/user-detail.component.css","./src/app/components/delete-line-item-dialog/delete-line-item-dialog.component.html","./src/app/components/login/login.component.html","./src/app/components/journals/journals.component.css","./src/app/components/print-movement/print-movement.component.css","./src/app/components/office-clients/office-clients.component.css","./src/app/components/add-user-dialog/add-user-dialog.component.html","./src/app/components/client-recurring-products/client-recurring-products.component.ts","./src/app/components/view-template-dialog/view-template-dialog.component.html","./src/app/models/endOfDayClient.ts","./src/app/components/confirm-patch-dialog/confirm-patch-dialog.component.css","./src/app/components/assign-recurring-product-dialog/assign-recurring-product-dialog.component.css","./src/app/components/client-messages/client-messages.component.ts","./src/app/components/offices/offices.component.css","./src/app/components/users/users.component.html","./src/app/components/add-notice-dialog/add-notice-dialog.component.html","./node_modules/moment/locale sync ^\\.\\/.*$","./src/app/components/view-template-dialog/view-template-dialog.component.css","./src/app/components/delete-line-item-dialog/delete-line-item-dialog.component.ts","./src/app/components/office-detail/office-detail.component.css","./src/app/components/raise-credit-note-dialog/raise-credit-note-dialog.component.ts","./src/app/components/add-invoice-dialog/add-invoice-dialog.component.html","./src/app/components/email-invoice-dialog/email-invoice-dialog.component.ts","./src/app/app.component.ts","./src/app/components/assign-recurring-product-dialog/assign-recurring-product-dialog.component.html","./src/app/components/view-notice-dialog/view-notice-dialog.component.ts","./src/app/components/email-message-report-dialog/email-message-report-dialog.component.html","./src/app/components/admin/admin.component.css","./src/app/components/add-invoice-product-dialog/add-invoice-product-dialog.component.html","./src/app/services/offices-users-roles.service.ts","./src/app/components/users/users.component.css","./src/app/components/reporting/reporting.component.html","./src/app/components/add-contact-dialog/add-contact-dialog.component.ts","./src/app/components/void-invoice-dialog/void-invoice-dialog.component.ts","./src/app/components/journals/journals.component.ts","./src/app/app.component.html","./src/app/components/contacts/contacts.component.css","./src/app/components/login/login.component.ts","./src/app/models/invoiceData.ts","./src/app/components/view-contacts-dialog/view-contacts-dialog.component.html","./src/app/components/client-templates/client-templates.component.css","./src/app/components/add-notice-dialog/add-notice-dialog.component.css","./src/app/pipes/hide.pipe.ts","./src/app/components/client-messages/client-messages.component.css","./src/app/components/end-of-day-dialog/end-of-day-dialog.component.html","./src/app/components/office-clients/office-clients.component.ts","./src/app/components/offices/offices.component.ts","./src/app/components/add-invoice-product-dialog/add-invoice-product-dialog.component.ts","./src/app/components/client-detail/client-detail.component.ts","./src/app/app.module.ts","./src/app/components/print-movement/print-movement.component.html","./src/app/components/add-client-dialog/add-client-dialog.component.html","./src/app/components/print-movement/print-movement.component.ts","./src/app/components/reporting/reporting.component.css","./src/app/components/outbox/outbox.component.css","./src/app/components/raise-credit-note-dialog/raise-credit-note-dialog.component.html","./src/app/components/change-invoice-date-dialog/change-invoice-date-dialog.component.css","./src/app/components/client-movements/client-movements.component.ts","./src/app/components/invoicing-detail/invoicing-detail.component.ts","./src/app/components/client-sent-invoices/client-sent-invoices.component.css","./src/app/components/admin/admin.component.ts","./src/app/services/user-session.service.ts","./src/app/components/view-notice-dialog/view-notice-dialog.component.html","./src/app/components/client-invoicing/client-invoicing.component.css","./src/app/components/messages/messages.component.html","./src/app/components/reset/reset.component.ts","./src/app/services/templates.service.ts","./src/app/components/change-invoice-reference-dialog/change-invoice-reference-dialog.component.ts","./src/app/models/invoicingProductsData.ts","./src/app/components/clients/clients.component.css","./src/app/components/add-office-dialog/add-office-dialog.component.ts","./src/app/components/client-messages/client-messages.component.html","./src/app/models/templateData.ts","./src/app/components/add-movement-dialog/add-movement-dialog.component.html","./src/app/components/confirm-patch-dialog/confirm-patch-dialog.component.html","./src/app/components/invoicing/invoicing.component.html","./src/app/components/add-template-dialog/add-template-dialog.component.ts","./src/app/models/userData.ts","./src/app/material-module.ts","./src/app/components/office-detail/office-detail.component.ts","./src/app/components/invoicing/invoicing.component.ts","./src/app/components/change-invoice-reference-dialog/change-invoice-reference-dialog.component.html","./src/app/components/add-invoice-dialog/add-invoice-dialog.component.css","./src/app/components/email-message-report-dialog/email-message-report-dialog.component.ts","./src/app/components/add-client-dialog/add-client-dialog.component.css","./src/app/components/my-account/my-account.component.html","./src/app/components/contacts-detail/contacts-detail.component.ts","./src/app/components/outbox/outbox.component.ts","./src/app/components/view-contacts-dialog/view-contacts-dialog.component.ts","./src/app/components/view-movement-dialog/view-movement-dialog.component.html","./src/app/components/client-invoicing/client-invoicing.component.ts","./src/app/components/client-detail/client-detail.component.css","./src/app/components/contacts-detail/contacts-detail.component.html","./src/app/components/login/login.component.css","./src/app/components/invoicing-detail/invoicing-detail.component.css","./src/app/services/clients-contacts.service.ts","./src/app/components/client-detail/client-detail.component.html","./src/app/components/add-credit-note-dialog/add-credit-note-dialog.component.css","./src/app/components/change-invoice-reference-dialog/change-invoice-reference-dialog.component.css","./src/app/components/add-template-dialog/add-template-dialog.component.css","./src/app/components/invoicing-products/invoicing-products.component.css","./src/app/components/change-invoice-payment-type-dialog/change-invoice-payment-type-dialog.component.ts","./src/app/components/complete-invoice-dialog/complete-invoice-dialog.component.html","./src/app/components/change-invoice-date-dialog/change-invoice-date-dialog.component.html","./src/app/auth.guard.service.ts","./src/app/components/user-detail/user-detail.component.ts","./src/app/components/void-invoice-dialog/void-invoice-dialog.component.css","./src/app/components/office-detail/office-detail.component.html","./src/app/models/passwordData.ts","./src/app/components/email-message-report-dialog/email-message-report-dialog.component.css","./src/app/components/add-user-dialog/add-user-dialog.component.css","./src/app/components/notices/notices.component.css","./src/app/components/add-movement-dialog/add-movement-dialog.component.ts","./src/app/components/header/header.component.css","./src/app/models/userRolesData.ts","./src/app/components/home/home.component.html","./src/app/components/invoicing/invoicing.component.css","./src/app/components/view-contacts-dialog/view-contacts-dialog.component.css","./src/app/components/view-movement-dialog/view-movement-dialog.component.css","./src/app/components/print-invoice/print-invoice.component.css","./src/app/components/client-sent-invoices/client-sent-invoices.component.ts","./src/app/components/view-line-item-dialog/view-line-item-dialog.component.ts","./src/app/app-routing.module.ts","./src/app/components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component.html","./src/app/components/view-invoice-product-dialog/view-invoice-product-dialog.component.css","./src/app/components/messages/messages.component.ts","./src/app/components/raise-credit-note-dialog/raise-credit-note-dialog.component.css","./src/app/components/view-movement-dialog/view-movement-dialog.component.ts","./src/app/components/admin/admin.component.html","./src/app/components/message-stats/message-stats.component.css","./src/app/components/add-line-item-dialog/add-line-item-dialog.component.ts","./src/app/components/view-template-dialog/view-template-dialog.component.ts","./src/app/components/add-credit-note-dialog/add-credit-note-dialog.component.ts","./src/app/components/client-movements/client-movements.component.css","./src/app/components/header/header.component.html","./src/app/components/notices/notices.component.ts","./src/app/components/invoicing-products/invoicing-products.component.ts","./src/main.ts","./$_lazy_route_resource lazy namespace object","./src/app/components/change-invoice-tariff-dialog/change-invoice-tariff-dialog.component.css"],"names":[],"mappings":"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EAAS;;AAqBL,uBAAuB;IANnC,+DAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,4FAA+C;QAE/C,SAAS,EAAE,CAAC,0EAAe,EAAE,yFAAsB,CAAC;;KACrD,CAAC;qCAwBoC,0EAAe,EAAkB,sDAAM,EAAiB,8DAAc,EAAiC,yFAAsB,EAAmB,uEAAW,EAAiB,kEAAS;GAvB9M,uBAAuB,CA+GnC;AA/GmC;;;;;;;;;;;;;ACzBpC;AAAe,6GAA8C,2HAA2H,E;;;;;;;;;;;;ACAxL;AAAe,+GAAgD,iaAAia,mBAAmB,2jBAA2jB,8mBAA8mB,uEAAuE,eAAe,gEAAgE,qDAAqD,mBAAmB,mDAAmD,gBAAgB,8PAA8P,gBAAgB,sQAAsQ,qYAAqY,iHAAiH,E;;;;;;;;;;;;ACAv8F;AAAe,giFAAi+E,E;;;;;;;;;;;ACAh/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2B;;;;;;;;;;;;ACnSA;AAAe,6GAA8C,2IAA2I,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA9I;AACR;AACkC;AAI1B;AAIU;IAWvD,6BAA6B,SAA7B,6BAA6B;IAGxC,YAAmB,SAAsD,EAAkC,IAAS,EAAS,gBAAkC,EAAS,QAAqB;QAA1K,cAAS,GAAT,SAAS,CAA6C;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAS,aAAQ,GAAR,QAAQ,CAAa;IAAI,CAAC;IAElM,QAAQ;QAEN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IA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CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;YAC3B,EAAE,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;SAE5B,CAAC;QAEF,YAAO,GAAG,EAAE,CAAC;QAwQb,eAAU,GAAG,CAAC,cAAiC,EAAQ,EAAE;YACvD,IAAI,cAAc,CAAC,KAAK,KAAK,CAAC,EAAE;gBAC9B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjC;QACH,CAAC;QACO,YAAO,GAAG,KAAK,CAAC;QAEjB,aAAQ,GAAG,GAAS,EAAE;YAC3B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACvB,CAAC,CAAC;QAEK,UAAK,GAAG,GAAS,EAAE;YACxB,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;YACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YAEpB,mDAAmD;YACnD,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC,CAAC;QArRA,IAAI,CAAC,aAAa,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAEpD,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;QACxD,oCAAoC;QACpC,IAAI,CAAC,YAAY,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,mCAAM,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;QAGzC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YAEpB,UAAU,EAAE,IAAI,0DAAW,EAAE;YAC7B,WAAW,EAAE,IAAI,0DAAW,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAChF,YAAY,EAAE,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACvC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;YAC5C,SAAS,EAAE,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACpC,OAAO,EAAE,CAAC,EAAE,CAAC;YACb,WAAW,EAAE,CAAC,EAAE,CAAC;YACjB,WAAW,EAAE,CAAC,mCAAM,EAAE,CAAC,MAAM,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACrD,SAAS,EAAE,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACpC,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,YAAY,EAAE,CAAC,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACvC,SAAS,EAAE,CAAC,KAAK,CAAC;YAClB,eAAe,EAAE,CAAC,CAAC,CAAC;YACpB,aAAa,EAAE,CAAC,KAAK,CAAC;YACtB,gBAAgB,EAAE,CAAC,CAAC,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC1C,MAAM,EAAE,IAAI,0DAAW,EAAE;YACzB,QAAQ,EAAE,IAAI,0DAAW,EAAE;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,YAAY;aACzC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChB,qDAAqD;YACrD,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,KAAK,EAAE,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,QAAQ,EAAE;gBAC5G,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC9G,SAAS,CAAC,GAAG,CAAC,EAAE;oBACf,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;wBAC1B,OAAO,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,OAAO;qBAC1C;yBAAM;wBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC5C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;qBAClD;gBAEH,CAAC,CAAC;aACL;QAEH,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,iBAAiB,CAAC,YAAY;aAChC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChB,4CAA4C;YAC5C,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,KAAK,EAAE,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,QAAQ,EAAE;gBAC1F,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aACrC;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;qBAC3G,SAAS,CAAC,GAAG,CAAC,EAAE;oBACf,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;wBAC1B,OAAO,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ;qBAC5C;yBAAM;wBACL,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;wBAC5C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;qBAClD;gBAEH,CAAC,CAAC;aACL;QAEH,CAAC,CAAC,CAAC;IAEP,CAAC;IAGO,KAAK;QACX,gCAAgC;QAChC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE/C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBACL,qBAAqB;gBAGrB,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,YAAY,GAAG,IAAI,KAAK,EAAE,CAAC;gBAC/B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;oBAC7B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC,CAAC,CAAC;gBACH,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;iBAC3B;gBACD,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;iBAC9B;gBACD,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;iBAC5B;gBACD,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAC5B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;iBAC/B;aACF;YACD,2CAA2C;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAGD,gBAAgB,CAAC,MAA0B;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IACD,iBAAiB,CAAC,OAA4B;QAC5C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IACjD,CAAC;IACD,gBAAgB,CAAC,MAAe;QAC9B,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,UAAkB;QAEvB,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,UAAU,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAE/B,IAAI,MAAM,GAAG,IAAI,qEAAkB,EAAE,CAAC;oBACtC,MAAM,GAAG,OAAO,CAAC;oBACjB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9C;QAEH,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAClC,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE7E,CAAC;IAED,OAAO,CAAC,WAAmB;QAEzB,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAEjC,IAAI,OAAO,GAAG,IAAI,uEAAmB,EAAE,CAAC;oBACxC,OAAO,GAAG,QAAQ,CAAC;oBACnB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC9B,CAAC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aAC9C;QAEH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CACnC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/E,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IACD,iBAAiB,CAAC,OAAe;QAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,EACpC,CAAC,CAAC;IACL,CAAC;IAED,YAAY;QACV,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC;QACvC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;QACnF,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC5D,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,GAAW,CAAC,CAAC;QAElB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACpD;SACF;QAED,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,mCAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,mCAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE5C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,GAAG,IAAI,2DAAO,EAAE,CAAC;QACxC,IAAI,CAAC,eAAe,GAAG,IAAI,2DAAO,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,IAAI,2DAAO,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,GAAG,IAAI,8DAAU,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,2DAAO,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAI,iEAAa,EAAE,CAAC;IAE/C,CAAC;IAEO,UAAU,CAAC,EAAU,EAAE,UAAkB,EAAE,aAAqB,EAAE,QAAgB,EAAE,QAAgB,EAAE,YAAoB;QAChI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEtJ,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;gBAC9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;gBAE3B,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBAEjH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;oBAEnD,yBAAyB;oBACzB,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,CAAC,EAAE;wBACxC,+IAA+I;wBAC/I,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACtE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;wBAC3E,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;wBACtE,IAAI,WAAW,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;wBAC9D,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;wBAC/F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;wBACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;qBACpD;gBACH,CAAC,CAAC;gBACF,8CAA8C;gBAC9C,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,IAAI,EAAE;iBAE7E;qBAAM;oBACL,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;qBAC1G;yBAAM;wBACL,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;qBACrE;iBACF;gBAED,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,KAAK,IAAI,EAAE;iBAErF;qBAAM;oBACL,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;qBAClH;yBAAM;wBACL,IAAI,CAAC,cAAc,CAAC,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;qBAC7E;iBACF;gBACD,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,IAAI,EAAE;iBAE/E;qBAAM;oBACL,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;qBAC5G;yBAAM;wBACL,IAAI,CAAC,cAAc,CAAC,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;qBACvE;iBACF;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAqBD,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;gBAEtD,+CAA+C;gBAC/C,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;oBAEtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAErD,CAAC,CAAC,CAAC;aAEJ;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;aAClD;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,QAAgB;QAC3B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACzF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC;aACvC;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;aAClD;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,UAAU;QAEtB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC;IAEvC,CAAC;IAED,WAAW,CAAC,SAAS;QAEpB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC;IAErC,CAAC;IAED,aAAa,CAAC,WAAW;QAGvB,IAAG,WAAW,CAAC,MAAM,KAAK,CAAC,EAAC;YAC1B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SACxB;aAAI;YACL,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;SAC5C;IACH,CAAC;IACD,WAAW,CAAC,SAAS;QAEnB,IAAG,SAAS,CAAC,MAAM,KAAK,CAAC,EAAC;YACxB,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;SACtB;aAAI;YACL,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;SACvC;IAEH,CAAC;IACD,eAAe,CAAC,aAAa;QAE3B,IAAG,aAAa,CAAC,MAAM,KAAK,CAAC,EAAC;YAC5B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC;SAC1B;aAAI;YACH,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC,MAAM,GAAE,EAAE,CAAC;SACjD;IAKH,CAAC;IAGD,eAAe;QACb,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACtE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;aAC1C;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;aAClD;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,WAAW,CAAC,QAAgB;QAG1B,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE3C,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YACxE,0CAA0C;YAE1C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;aAClD;QAEH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,UAAU,CAAC,OAAgB;QACzB,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAExG,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC3E,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;gBACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;aACpD;iBAAM;gBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC7C,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;aAClD;QAEH,CAAC,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,MAAW;QACnB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,2DAAO,EAAE,CAAC;QAEjC,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,mCAAM,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,mCAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,mCAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAC3C,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,YAAY,CAAC,MAAM,EAAE,CAAC;YACtB,UAAU,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAEpD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAEnC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;YAExC,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC;YACjC,oBAAoB;SACrB;aAAM;YACL,YAAY,CAAC,OAAO,EAAE,CAAC;YACvB,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC3B;IACH,CAAC;IACD,UAAU,CAAC,WAAgB;QACzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACjC,IAAI,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC;QAEhC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEhD,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;YAEzB,IAAG,IAAI,CAAC,cAAc,CAAC,SAAS,GAAG,CAAC,EAAC;gBACrC,sBAAsB;aACrB;YAED,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;YAE9C,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;YAE9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;YAE/B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC;YAC9C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7B,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;YACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAGvE,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;gBAGtD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;gBACnF,qBAAqB;gBACrB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;gBAG7F,IAAI,CAAC,kBAAkB,GAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;gBACzG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAE,CAAC;gBAGpE,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;oBACvH,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;oBAC/F,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;oBACvD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAErD,CAAC,CAAC,CAAC;aAEJ;SAGF;aAAM;SAEN;IACH,CAAC;IAGD,WAAW,CAAC,QAAQ;QAClB,wBAAwB;QACxB,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;SAC5C;IACH,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,8DAAU,EAAE,CAAC;QACnC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QACxE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,2DAAO,EAAE,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,mCAAM,EAAE,CAAC,CAAC;QAEpD,IAAI,CAAC,WAAW,GAAG,IAAI,2DAAO,EAAE,CAAC;QACjC,IAAI,CAAC,GAAW,CAAC,CAAC;QAElB,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACvB,IAAI,CAAC,GAAG,EAAE,EAAE;gBACV,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;aAClD;iBAAM;gBACL,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACpD;SACF;QAED,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,mCAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,mCAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEpD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,iBAAiB,CAAC,QAAQ;QAExB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4HAA2B,EAAE;YAC5D,KAAK,EAAE,KAAK;YACZ,IAAI,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE;SACjC,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YACnB,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,EAAE;gBAC9B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;gBACnD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;gBACzB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxD,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACnD,IAAI,WAAW,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE;gBAC3C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;IAEL,CAAC;IAED,kBAAkB,CAAC,OAAO;QAExB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yHAA0B,EAAE;YAC3D,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;SAC/B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAE3C,CAAC,CAAC,CAAC;IAEL,CAAC;IAGD,QAAQ,CAAC,IAAY;QACnB,IAAI,KAAK,GAAG,CAAC,CAAiB,EAAE,EAAE;YAChC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC5C,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QAC3C,CAAC;QACD,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,kBAAkB,CAAC,IAAI;QAErB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE;YAC5B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4HAA2B,EAAE;gBAC5D,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;aACrB,CAAC,CAAC;YACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAEzC,IAAI,MAAM,KAAK,IAAI,EAAE;iBAEpB;qBAAM;oBACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACpC;YAEH,CAAC,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACpC;IACH,CAAC;IACD,WAAW,CAAC,IAAS;QAEnB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAElB,IAAI,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;QAEtL,IAAG,IAAI,CAAC,UAAU,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,QAAQ,EAAC;YAC9X,IAAI,CAAC,iBAAiB,CAAC,0DAA0D,GAAG,SAAS,GAAG,sBAAsB,CAAC,CAAC;SACzH;aAAI;YAEL,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;YACtB,IAAI,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;YAE7C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YACxD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,mCAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;YACrG,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,mCAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAE9D,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;YAC3D,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,CAAC,CAAC;YAElC,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;gBAC9B,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;aACzD;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;aAC9C;YAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACxB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACxC;YACD,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;gBACtB,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;aAC5B;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;aACpC;YACD,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;gBAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,EAAE,CAAC;aAChC;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;aAC5C;YACD,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE;gBACxB,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,EAAE,CAAC;aAC9B;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;aACxC;YAED,IAAI,aAAa,GAAW,EAAE,CAAC;YAC/B,qBAAqB;YACrB,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE;gBAEvC,aAAa,GAAG,uCAAuC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;aAErF;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE;gBAE9C,aAAa,GAAG,yCAAyC,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;aAE5F;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE;gBAE9C,aAAa,GAAG,6CAA6C,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;aAEtI;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE;gBAE9C,aAAa,GAAG,mBAAmB,CAAC;aAErC;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE;gBAE9C,aAAa,GAAG,8BAA8B,CAAC;aAEhD;iBAAM,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,EAAE;gBAE9C,aAAa,GAAG,8BAA8B,CAAC;aAEhD;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;YAC7B,aAAa;YAIb,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBAEjE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;oBAC3B,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;oBACjC,IAAI,IAAI,CAAC,cAAc,EAAE;wBACvB,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;4BAE/E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gCAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;6BAC9C;iCAAM;gCACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gCAE7D,2CAA2C;6BAE5C;wBACH,CAAC,CAAC,CAAC;qBACJ;oBACD,eAAe;oBACf,IAAI,CAAC,KAAK,EAAE,CAAC;oBAEb,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;qBAAM;oBACL,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACtB;YAEH,CAAC,CAAC,CAAC;SACJ;IAED,CAAC;IAEM,MAAM,CAAC,IAAI,EAAE,KAAK;QACvB,QAAQ,KAAK,EAAE;YACb,KAAK,KAAK;gBAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAAC,MAAM;YACjD,KAAK,MAAM;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBAAC,MAAM;YACjC,OAAO,CAAC,CAAC,MAAM;SAChB;IACH,CAAC;CACF;;YAv1BQ,kEAAS;YA+BT,2EAAe;YA7Bf,uEAAW;YAHA,0DAAW;YA6BtB,kFAAkB;YARlB,2EAAe;YADf,0FAAsB;YAOtB,6EAAgB;YAFhB,6EAAgB;;AAeZ,iBAAiB;IAN7B,+DAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,qFAAwC;QAExC,SAAS,EAAE,CAAC,0FAAsB,EAAE,6EAAgB,EAAE,6EAAgB,EAAE,2EAAe,EAAE,kFAAkB,CAAC;;KAC7G,CAAC;qCAkG2B,kEAAS,EAA0B,2EAAe,EAAmB,uEAAW,EAAc,0DAAW,EAA6B,kFAAkB,EAA0B,2EAAe,EAAiC,0FAAsB,EAA2B,6EAAgB,EAA2B,6EAAgB;GAjG9V,iBAAiB,CAgzB7B;AAhzB6B;;;;;;;;;;;;;AC3C9B;AAAe,6GAA8C,+IAA+I,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAlJ;AAC0B;AAGQ;AAClC;AAEzB;AAEmC;AAGa;IASpE,2BAA2B,SAA3B,2BAA2B;IAUtC,YAAmB,SAAoD,EAAkC,IAAS,EAAU,EAAe,EAAS,QAAqB,EAAS,gBAAkC,EAAS,sBAA8C;QAAxP,cAAS,GAAT,SAAS,CAA2C;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAU,OAAE,GAAF,EAAE,CAAa;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAS,2BAAsB,GAAtB,sBAAsB,CAAwB;QAP3Q,sBAAiB,GAAgB,IAAI,0DAAW,EAAE,CAAC;QACnD,uBAAkB,GAAgB,IAAI,0DAAW,EAAE,CAAC;QACpD,qBAAgB,GAA0B,EAAE,CAAC;QAC7C,sBAAiB,GAA0B,EAAE,CAAC;QAO5C,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YAEpB,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,OAAO,EAAE,CAAC,IAAI,CAAC;YACf,WAAW,EAAE,CAAC,mCAAM,EAAE,CAAC,MAAM,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACrD,SAAS,EAAE,CAAC,mCAAM,EAAE,CAAC,MAAM,EAAE,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACnD,eAAe,EAAE,CAAC,IAAI,CAAC;YACvB,aAAa,EAAE,CAAC,IAAI,CAAC;YACrB,UAAU,EAAC,CAAC,IAAI,CAAC;SAClB,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,YAAY;aAChC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,KAAK,EAAE,IAAI,OAAO,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,QAAQ,EAAE;gBAC1F,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;aACrC;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;qBAC3G,SAAS,CAAC,GAAG,CAAC,EAAE;oBACf,OAAO,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,QAAQ;gBAC7C,CAAC,CAAC;aACL;QAEH,CAAC,CAAC,CAAC;QAIL,IAAI,CAAC,kBAAkB,CAAC,YAAY;aACjC,SAAS,CAAC,IAAI,CAAC,EAAE;YAChB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,KAAK,EAAE,IAAI,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,QAAQ,EAAE;gBAC5F,OAAO,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;aACtC;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,uBAAuB,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;qBAC5G,SAAS,CAAC,GAAG,CAAC,EAAE;oBACf,OAAO,IAAI,CAAC,iBAAiB,GAAG,GAAG,CAAC,QAAQ;gBAC9C,CAAC,CAAC;aACL;QAEH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,QAAQ;QAEN,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3H,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC;QACxH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,mCAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;QAC7F,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,mCAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IAE3F,CAAC;IACD,iBAAiB,CAAC,OAA4B;QAC5C,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IACjD,CAAC;IAED,cAAc,CAAC,OAAO;QACpB,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS,CAAC;SACrD;IAGH,CAAC;IACD,YAAY,CAAC,OAAO;QAElB,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,EAAE;YACzB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;SACnD;IAEH,CAAC;IACD,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAGD,cAAc,CAAC,IAAI;QACjB,IAAI,mCAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,IAAI,CAAC,YAAY,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;SAC9C;QACD,IAAI,mCAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;SAC1C;QACL,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAE,CAAC,EAAC;YAE5C,IAAI,CAAC,YAAY,CAAC,aAAa,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC;SAC1E;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,GAAE,CAAC,EAAC;YAE3C,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC;SACzE;QAEC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEtG,sBAAsB;YACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBAEL,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAExB;QACH,CAAC,CAAC,CAAC;IAGL,CAAC;CACF;;YA7ImB,qEAAY;4CA8B4C,oDAAM,SAAC,wEAAe;YA3BjE,0DAAW;YACnC,uEAAW;YAIX,4EAAgB;YAGhB,yFAAsB;;AASlB,2BAA2B;IANvC,+DAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,iGAAoD;QAEpD,SAAS,EAAE,CAAC,4EAAgB,EAAE,yFAAsB,CAAC;;KACtD,CAAC;qCAW8B,qEAAY,UAAsF,0DAAW,EAAmB,uEAAW,EAA2B,4EAAgB,EAAiC,yFAAsB;GAVhQ,2BAA2B,CAyHvC;AAzHuC;;;;;;;;;;;;;ACrBxC;AAAe,kJAAmF,0UAA0U,qIAAqI,0QAA0Q,E;;;;;;;;;;;;ACA3zB;AAAe,6GAA8C,mIAAmI,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAtI;AAC0B;AAClC;AAIkB;AACV;AAKoE;AAC7C;AACb;AAGgG;IAWvJ,0BAA0B,SAA1B,0BAA0B;IAYrC,YAAmB,sBAA8C,EAAS,SAAmD,EAAkC,IAAS,EAAS,gBAAkC,EAAS,QAAqB,EAAS,MAAiB,EAAU,EAAe;QAAjR,2BAAsB,GAAtB,sBAAsB,CAAwB;QAAS,cAAS,GAAT,SAAS,CAA0C;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,OAAE,GAAF,EAAE,CAAa;QATpS,iBAAY,GAAkB,EAAE,CAAC;QACjC,mBAAc,GAAc,EAAE,CAAC;QAC/B,aAAQ,GAAW,CAAC,CAAC;QACrB,mBAAc,GAAc,EAAE,CAAC;QAE/B,YAAO,GAAY,KAAK,CAAC;QACzB,gBAAW,GAAY,KAAK,CAAC;QAM3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YACpB,UAAU,EAAE,CAAC,CAAC,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACpC,eAAe,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC5C,WAAW,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACxC,aAAa,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACxC,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;SACrC,CAAC,CAAC;IACL,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,aAAa,GAAG,IAAI,yDAAM,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,+DAAW,EAAE,CAAC;QAErC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAElD,IAAG,IAAI,CAAC,WAAW,EAAC;YAClB,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;SAC5B;aAAI;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC;SAC5B;IACH,CAAC;IAED,UAAU;QAER,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE/D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC;IAED,eAAe;QAEb,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE9D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAExC,CAAC,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,aAAkB;QAC5B,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE3B,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;gBACrH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;iBACzC;qBAAM;oBACH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;iBACvD;YACH,CAAC,CAAC;SACH;IACH,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,OAAgB;QAC/B,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC9C,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACnD,yCAAyC;IAE3C,CAAC;IAED,WAAW,CAAC,IAAI;QAClB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAChB,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEnE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;aACtB;iBAAM;gBAEL,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBACrC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aACxB;QAEH,CAAC,CAAC;IAEJ,CAAC;CACF;;YA5HQ,yFAAsB;YAZX,qEAAY;4CAuCkG,oDAAM,SAAC,wEAAe;YA1B/I,4EAAgB;YAPhB,uEAAW;YANX,kEAAS;YAKT,0DAAW;;AAsBP,0BAA0B;IAPtC,+DAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,iGAAoD;QAEpD,aAAa,EAAE,+DAAiB,CAAC,IAAI;QACrC,SAAS,EAAE,CAAC,4EAAgB,EAAE,yFAAsB,CAAC;;KACtD,CAAC;qCAa2C,yFAAsB,EAAoB,qEAAY,UAAkG,4EAAgB,EAAmB,uEAAW,EAAiB,kEAAS,EAAc,0DAAW;GAZzR,0BAA0B,CA6GtC;AA7GsC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BmB;AACwB;AAGU;AAClC;AAKU;AACa;AAOR;IAQ5D,2BAA2B,SAA3B,2BAA2B;IAStC,YAAmB,SAAoD,EAAkC,IAAS,EAAS,kBAAsC,EAAS,sBAA8C,EAAU,EAAc,EAAS,gBAAiC,EAAS,QAAqB;QAArS,cAAS,GAAT,SAAS,CAA2C;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAS,uBAAkB,GAAlB,kBAAkB,CAAoB;QAAS,2BAAsB,GAAtB,sBAAsB,CAAwB;QAAU,OAAE,GAAF,EAAE,CAAY;QAAS,qBAAgB,GAAhB,gBAAgB,CAAiB;QAAS,aAAQ,GAAR,QAAQ,CAAa;QANxT,oBAAe,GAAyB,EAAE,CAAC;QAI3C,cAAS,GAAgB,IAAI,0DAAW,EAAE,CAAC;QAIzC,IAAI,CAAC,eAAe,GAAG,kBAAkB,CAAC,WAAW,EAAE,CAAC;QAExD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;YAEpB,SAAS,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACtC,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,UAAU,EAAE,CAAC,IAAI,CAAC;YAClB,UAAU,EAAE,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACvC,gBAAgB,EAAG,CAAC,CAAC,CAAC;YACtB,UAAU,EAAG,CAAC,IAAI,EAAE,yDAAU,CAAC,QAAQ,CAAC;YACxC,aAAa,EAAE,EAAE,CAAC,KAAK,CAAC;gBACtB,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,YAAY,EAAE,CAAC,IAAI,CAAC;aACrB,CAAC;SAEG,CAAC,CAAC;QAGH,IAAI,CAAC,SAAS,CAAC,YAAY;aAC1B,SAAS,CAAC,IAAI,CAAC,EAAE;YAChB,wDAAwD;YACxD,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,EAAE,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,QAAQ,EAAE;gBAC1E,OAAO,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;aACpC;iBAAM;gBACL,IAAI,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;qBAC7F,SAAS,CAAC,GAAG,CAAC,EAAE;oBACf,OAAO,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,OAAO;gBAC3C,CAAC,CAAC;aACL;QAEH,CAAC,CAAC,CAAC;IAEX,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3C,8GAA8G;QAC9G,mFAAmF;QACnF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAC,CAAC,CAAC;QAC1G,gFAAgF;QAChF,oFAAoF;IACtF,CAAC;IAED,gBAAgB,CAAC,MAA0B;QACzC,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;IAC7C,CAAC;IACD,YAAY,CAAC,KAAY;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAE,IAAI,CAAC;YACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACrB;aAAM;YAEL,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;SACzB;IACH,CAAC;IACD,SAAS;QACP,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,MAAM;QAEV,mDAAmD;QACnD,kDAAkD;QAElD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE;YACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;SAC9C;IACH,CAAC;IACL,cAAc,CAAC,IAAI;QACnB,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAElG,sBAAsB;YACtB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBAEP,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;gBACtC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAEtB;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;;YAhIkB,qEAAY;4CAkC6C,oDAAM,SAAC,wEAAe;YAjBzF,iFAAkB;YAPlB,yFAAsB;YAPE,0DAAW;YAMnC,4EAAgB;YALhB,uEAAW;;AAqBP,2BAA2B;IANvC,+DAAS,CAAC;QACT,QAAQ,EAAE,0BAA0B;QACpC,iGAAoD;QAEpD,SAAS,EAAE,CAAC,4EAAgB,EAAE,yFAAsB,CAAC;;KACtD,CAAC;qCAU8B,qEAAY,UAAqG,iFAAkB,EAAiC,yFAAsB,EAAa,0DAAW,EAA0B,4EAAgB,EAAmB,uEAAW;GAT7S,2BAA2B,CAuGvC;AAvGuC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BqC;AACO;AACnB;AAGP;AAIU;IASvD,4BAA4B,SAA5B,4BAA4B;IAGvC,YAAoB,MAAc,EAAU,KAAqB,EAAS,SAAqD,EAAkC,IAAS,EAAS,gBAAkC,EAAS,QAAqB;QAA/N,WAAM,GAAN,MAAM,CAAQ;QAAU,UAAK,GAAL,KAAK,CAAgB;QAAS,cAAS,GAAT,SAAS,CAA4C;QAAkC,SAAI,GAAJ,IAAI,CAAK;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAFnP,aAAQ,GAAW,CAAC,CAAC;IAEkO,CAAC;IAExP,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,QAAgB;QAElB,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAEpE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBAEL,IAAI,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;aAExB;QACH,CAAC,CAAC;IACJ,CAAC;CACF;;YA9CQ,sDAAM;YAAE,8DAAc;YADX,qEAAY;4CAoBoG,oDAAM,SAAC,wEAAe;YAZjJ,4EAAgB;YAJhB,uEAAW;;AAaP,4BAA4B;IANxC,+DAAS,CAAC;QACT,QAAQ,EAAE,4BAA4B;QACtC,mGAAsD;QAEtD,SAAS,EAAE,CAAC,4EAAgB,CAAC;;KAC9B,CAAC;qCAI4B,sDAAM,EAAiB,8DAAc,EAAoB,qEAAY,UAAoG,4EAAgB,EAAmB,uEAAW;GAHxO,4BAA4B,CA8BxC;AA9BwC;;;;;;;;;;;;;AClBzC;AAAe,6GAA8C,uIAAuI,E;;;;;;;;;;;;ACApM;AAAe,oKAAqG,iBAAiB,iBAAiB,kBAAkB,2YAA2Y,iHAAiH,KAAK,KAAK,2dAA2d,eAAe,qXAAqX,gNAAgN,uBAAuB,gRAAgR,uBAAuB,qLAAqL,mBAAmB,iDAAiD,eAAe,ygCAAygC,iHAAiH,KAAK,KAAK,0LAA0L,gNAAgN,uBAAuB,gRAAgR,uBAAuB,qLAAqL,mBAAmB,iDAAiD,eAAe,qrCAAqrC,eAAe,oZAAoZ,4qBAA4qB,eAAe,ybAAyb,uHAAuH,KAAK,KAAK,qGAAqG,gNAAgN,uBAAuB,gRAAgR,uBAAuB,u2BAAu2B,kCAAkC,iBAAiB,mCAAmC,sTAAsT,oGAAoG,KAAK,KAAK,ujBAAujB,eAAe,icAAic,0MAA0M,uBAAuB,gQAAgQ,uBAAuB,yKAAyK,mBAAmB,IAAI,eAAe,glBAAglB,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAz3W;AAMH;AACS;AAKmB;AAIuB;AAEJ;IAU5F,gBAAgB,SAAhB,gBAAgB;IAW3B,YAAmB,wBAAkD,EAAS,QAAqB,EAAS,MAAiB;QAA1G,6BAAwB,GAAxB,wBAAwB,CAA0B;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAV7H,iBAAY,GAAmB,EAAE,CAAC;QAClC,aAAQ,GAAW,CAAC,CAAC;QAErB,mBAAc,GAAU,CAAC,CAAC;QAC1B,iBAAY,GAAG;YACb,EAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAC;YAC5B,EAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAC;YAC/B,EAAC,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAC;SAClC,CAAC;IAE+H,CAAC;IAElI,QAAQ;QAEN,sDAAsD;IACxD,CAAC;IAGD,YAAY,CAAC,QAAQ;QAEnB,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iHAAuB,EAAE;YACxD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAC;SAC5B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAEzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IAEL,CAAC;IAID,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IACD,UAAU,CAAC,QAAgB,EAAE,MAAc;QACzC,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE7E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;aACzC;iBAAM;gBAEL,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC;aAClC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QACH,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAEtD,CAAC;IACD,gBAAgB,CAAC,MAAM;QAEf,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qHAAyB,EAAE;YAC3D,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;QAC3C,CAAC,CAAC,CAAC;IAEP,CAAC;CACL;;YAlFQ,8FAAwB;YANxB,uEAAW;YACX,kEAAS;;AAqBL,gBAAgB;IAN5B,+DAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,oFAAuC;QAEvC,SAAS,EAAE,CAAC,8FAAwB,CAAC;;KACtC,CAAC;qCAY6C,8FAAwB,EAAmB,uEAAW,EAAiB,kEAAS;GAXlH,gBAAgB,CAkE5B;AAlE4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC5BgC;AACX;AAGkC;AAC1B;AAMe;AAEL;AAKmE;IAU1H,0BAA0B,SAA1B,0BAA0B;IAoBrC,YAAmB,kBAAsC,EAAS,gBAAkC,EAAS,QAAqB,EAAS,MAAiB;QAAzI,uBAAkB,GAAlB,kBAAkB,CAAoB;QAAS,qBAAgB,GAAhB,gBAAgB,CAAkB;QAAS,aAAQ,GAAR,QAAQ,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAjB5J,mBAAc,GAAe,EAAE,CAAC;QAChC,uBAAkB,GAAkB,EAAE,CAAC;QACvC,iBAAY,GAAW,CAAC,CAAC;QACzB,kBAAa,GAAW,CAAC,CAAC;QAC1B,WAAM,GAAW,CAAC,CAAC;QAEnB,mBAAc,GAAW,CAAC,CAAC;QAE3B,kBAAa,GAAG;YACd,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;SAC/B,CAAC;QACF,iBAAY,GAAG;YACb,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE;YAC9B,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE;YACjC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE;SACpC,CAAC;IAE8J,CAAC;IAEjK,QAAQ;QAEN,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAGM,oBAAoB,CAAC,aAAqB,EAAE,QAAgB,EAAE,MAAc;QAEjF,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAGpH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,CAAC;aAClD;iBAAM;gBAEL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;gBACpD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;aACrD;QACH,CAAC,CAAC;IAEJ,CAAC;IACD,OAAO,CAAC,KAAK;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;QAE9B,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC1F,CAAC;IACD,eAAe;QAEb,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;YAE9D,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,YAAY,CAAC;YAE5C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;gBAE1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAElE,CAAC,CAAC,CAAC;QAEL,CAAC,CAAC;IAEJ,CAAC;IAGD,YAAY,CAAC,OAAe;QAC1B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE;YACnC,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK;QAEH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAExE,CAAC;IAID,wBAAwB,CAAC,OAAO;QAE9B,IAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,+IAAiC,EAAE;YAClE,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE;SAC3B,CAAC,CAAC;QACH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,sCAAsC;QACxC,CAAC,CAAC,CAAC;IAEL,CAAC;CACF;;YAlHQ,iFAAkB;YAElB,4EAAgB;YARhB,uEAAW;YADX,kEAAS;;AAwBL,0BAA0B;IAPtC,+DAAS,CAAC;QACT,QAAQ,EAAE,wBAAwB;QAClC,+FAAkD;QAElD,aAAa,EAAE,+DAAiB,CAAC,IAAI;QACrC,SAAS,EAAE,CAAC,iFAAkB,EAAE,4EAAgB,CAAC;;KAClD,CAAC;qCAqBuC,iFAAkB,EAA2B,4EAAgB,EAAmB,uEAAW,EAAiB,kEAAS;GApBjJ,0BAA0B,CAiGtC;AAjGsC;;;;;;;;;;;;;AC5BvC;AAAA;AAAA;AAAA;AAAA;AAA+C;AAC4B;AAE9B;AACY;AAEzD,IAAI,qEAAW,CAAC,UAAU,EAAE;IAC1B,oEAAc,EAAE,CAAC;CAClB;AAED,gGAAsB,EAAE,CAAC,eAAe,CAAC,yDAAS,CAAC,CAAC;;;;;;;;;;;;ACVpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA,4CAA4C,WAAW;AACvD;AACA;AACA,qC;;;;;;;;;;;;ACZA;AAAe,6GAA8C,uJAAuJ,E","file":"main-es2015.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== */\";"],"sourceRoot":"webpack:///"}