{"version":3,"file":"main.js","mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAyB;AACC;AAES;AACK;AACd;AACE;AACa;AACjB;AACQ;AACI;AACR;AACE;AACI;AACC;AAClE,2BAA2B;AAC4B;AACE;AACQ;AACK;AACQ;AACnB;AACW;AACN;AACT;AACM;AACJ;AACF;AACM;AACA;AACH;AACqB;AACjC;AACJ;AACiB;AACP;AACF;AACA;AAKI;AAEI;AACX;AACS;AACb;AACkC;AACc;AACW;AAC7C;AACiB;AACvB;AACnD,WAAW;AACiE;AACF;AACV;AACM;AAClB;AAC0B;AACM;AACtB;AACsB;AACI;AACR;AACF;AACM;AACR;AACZ;AACsB;AAChB;AACA;AACF;AACA;AACgC;AACc;AACtC;AACM;AACR;AACV;AACV;AACQ;AACJ;AACU;AACV;AACQ;AACY;AAChB;AACc;AACU;AAChC;AACsC;AACoB;AACM;AAC5D;AAChB;AACY;AACgB;AAC4B;AACoB;AACxD;AACR;AACc;AACe;AACD;AACzB;AAC0C;AACpC;AACO;AACM;AACP;AACD;AACJ;AAC2B;AACiB;AACtC;AACO;AACrB;AACqB;AACM;;;;;AAwI5E,MAAM,SAAS;;kEAAT,SAAS;sGAAT,SAAS,cAtIN,wDAAY;2GA6Db;QACP;YACI,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,mEAAiB;YAC1B,QAAQ,EAAE,oDAAc;SAC3B;QACD;YACI,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,mEAAiB;YAC1B,QAAQ,EAAE,sFAAoB;SACjC;QACD,qFAAsB;QACtB,yEAAgB;QAChB,mFAAqB;QACrB,6FAAqB;QACrB,wFAAuB;QACvB,8FAA0B;QAC1B,wEAAe;QACf,8FAA0B;QAC1B,0FAAwB;QACxB,kGAA2B;QAC3B,wFAAuB;QACvB,8FAA0B;QAC1B,sFAAsB;QACtB,0EAAgB;QAChB,gGAA2B;QAC3B,gFAAmB;QACnB,gFAAmB;QACnB,8EAAkB;QAClB,8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C8B;AACiB;AACF;AACH;AACH;AACH;AACJ;AACU;AACgC;AACE;AACM;AAC5C;AACe;AACkC;AAClK,SAAS;AACkG;AACc;AACoB;AAC/B;AACO;AACpB;AACQ;AACN;AAC4C;AACiB;AACxC;AACT;AACkC;AACX;AACG;AACT;AACZ;AACA;AACd;AACA;AACT;AACgE;AACE;AACR;AACD;AACzD;AAC0E;AACvB;AACX;AAC6B;AACxF;AACZ;AAC0B;AACqD;AACpD;AACwB;AACxB;AACA;AACkB;AACqC;AACsB;AACK;AAC3C;AACA;AACoC;AAC/B;AACpB;AACuB;AAC3C;AACA;AACA;AACoB;AACtB;AACuB;AACpB;AACsB;AACA;AACA;AACpB;AACmC;AACc;AACM;AACrB;AAC7C;AACgB;AAC5B;AACA;AAC0C;AAC1C;AACI;AAC8E;AACtD;AAC0B;AACtC;AACA;AACuE;AACE;AACG;AACN;AACX;AAChC;AACuB;AACvB;AACA;AACD;AAClC;AACA;AACA;AACuB;AACgE;AACY;AACb;AAC3C;AACA;AACA;AACpB;AACgB;AAC5B;AACuD;AACvC;AAC/B;AACA;AACA;AAC8B;AACsC;AACY;AAC5B;AACG;AACE;AACL;AACrB;AACI;AACA;AACH;AAER;AACmD;AACxC;AACA;AACe;AACA;AACF;AACgD;AACnE;AACkB;AACb;AACZ;AACc;AAC1C;AACS;AACoE;AACpC;AACsE;AACtE;AACc;AACG;AACuB;AAC4B;AACzF;AACc;AACN;AACkF;AACrD;AACZ;AACH;AACG;AACH;AACxB;AAC0B;AACvB;AACN;AAC4B;AACS;AACpC;AAC2E;AAC9B;AACxC;AAC0D;;AAkQ/I,MAAM,WAAW;;sEAAX,WAAW;wGAAX,WAAW;6GAdT;QACP,4EAAiB;QACjB,sEAAW;QACX,sEAAW;QACX,wEAAa;QACb,uEAAY;QACZ,yEAAc;QACd,2EAAgB;QAChB,qDAAQ;QACR,yDAAY;QACZ,8FAAoB;QACpB,+FAAqB;KACxB,YA5EQ;YACL,yDAAY;YACZ,yFAAuB;YACvB,uDAAW;YACX,kEAAc;YACd,yDAAU;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CAAC,CAAC;IAE3F,IAAI,SAAS,IAAI,GAAG,IAAI,SAAS,IAAI,GAAG,EAAE;QACtC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;KAClB,CAAC,+BAA+B;IACjC,OAAO,GAAG,CAAC;AACf,CAAC;;;;;;;;;;;;;;;;ACdM,MAAM,aAAa,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,MAAM,EAAE,GACJ,uJAAuJ,CAAC;IAC5J,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;;;;;;;;;;;ACJF;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;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACvSA;;;;;;;;;;ACAA","sources":["./src/app/app-pipes.module.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/constants/LocalStorageAccessConstant.ts","./src/app/constants/externalUrlsConstants.ts","./src/app/constants/sharedEvents.ts","./src/app/enums/applicable-tax-flights.ts","./src/app/enums/documents..enum.ts","./src/app/enums/fee-calculation-applying-types.ts","./src/app/enums/fee-calculation-types.ts","./src/app/enums/flight-type-classifications.ts","./src/app/enums/flight-watch.enum.ts","./src/app/enums/ramp-fee.enum.ts","./src/app/enums/service-order-applied-date-types.ts","./src/app/enums/string-filter-conditions.ts","./src/app/enums/strings.enums.ts","./src/app/enums/user-role.ts","./src/app/guards/auth.guard.ts","./src/app/helpers/files/file.helper.ts","./src/app/helpers/forms/formValidationHelper.service.ts","./src/app/helpers/strings/stringHelper.service.ts","./src/app/interceptors/http-error.interceptor.ts","./src/app/interceptors/jwt.interceptor.ts","./src/app/layouts/default/default.component.ts","./src/app/layouts/default/default.component.html","./src/app/layouts/landing-site/landing-site.component.ts","./src/app/layouts/landing-site/landing-site.component.html","./src/app/layouts/outside-the-gate/outside-the-gate.component.ts","./src/app/layouts/outside-the-gate/outside-the-gate.component.html","./src/app/layouts/public-view/public-view.component.ts","./src/app/layouts/public-view/public-view.component.html","./src/app/layouts/shared-service.ts","./src/app/models/enum-options.ts","./src/app/models/logs/appLogs.service.ts","./src/app/models/swim.ts","./src/app/models/user.ts","./src/app/ni-components/directives/bg/bg.directive.ts","./src/app/ni-components/directives/color/color.directive.ts","./src/app/ni-components/directives/gradient/gradient.directive.ts","./src/app/ni-components/ni-badge/ni-badge.component.ts","./src/app/ni-components/ni-badge/ni-badge.component.html","./src/app/ni-components/ni-breadcrumb/ni-breadcrumb.component.ts","./src/app/ni-components/ni-breadcrumb/ni-breadcrumb.component.html","./src/app/ni-components/ni-button/ni-button.component.ts","./src/app/ni-components/ni-button/ni-button.component.html","./src/app/ni-components/ni-card/ni-card.component.ts","./src/app/ni-components/ni-card/ni-card.component.html","./src/app/ni-components/ni-components.module.ts","./src/app/pages/about-fbolinx/about-fbolinx.component.ts","./src/app/pages/about-fbolinx/about-fbolinx.component.html","./src/app/pages/aircrafts/aircrafts-grid/aircrafts-grid.component.ts","./src/app/pages/aircrafts/aircrafts-grid/aircrafts-grid.component.html","./src/app/pages/analytics/analytics-activity-reports/analytics-activity-reports.component.ts","./src/app/pages/analytics/analytics-activity-reports/analytics-activity-reports.component.html","./src/app/pages/analytics/analytics-airport-arrivals-depatures/analytics-airport-arrivals-depatures.component.ts","./src/app/pages/analytics/analytics-airport-arrivals-depatures/analytics-airport-arrivals-depatures.component.html","./src/app/pages/analytics/analytics-companies-quotes-deal-table/analytics-companies-quotes-deal-table.component.ts","./src/app/pages/analytics/analytics-companies-quotes-deal-table/analytics-companies-quotes-deal-table.component.html","./src/app/pages/analytics/analytics-customer-breakdown-chart/analytics-customer-breakdown-chart.component.ts","./src/app/pages/analytics/analytics-customer-breakdown-chart/analytics-customer-breakdown-chart.component.html","./src/app/pages/analytics/analytics-fuel-vendor-source-chart/analytics-fuel-vendor-source-chart.component.ts","./src/app/pages/analytics/analytics-fuel-vendor-source-chart/analytics-fuel-vendor-source-chart.component.html","./src/app/pages/analytics/analytics-home/analytics-home.component.ts","./src/app/pages/analytics/analytics-home/analytics-home.component.html","./src/app/pages/analytics/analytics-market-share-fbo-airport-chart/analytics-market-share-fbo-airport-chart.component.ts","./src/app/pages/analytics/analytics-market-share-fbo-airport-chart/analytics-market-share-fbo-airport-chart.component.html","./src/app/pages/analytics/analytics-orders-over-time-chart/analytics-orders-over-time-chart.component.ts","./src/app/pages/analytics/analytics-orders-over-time-chart/analytics-orders-over-time-chart.component.html","./src/app/pages/analytics/analytics-orders-quote-chart/analytics-orders-quote-chart.component.ts","./src/app/pages/analytics/analytics-orders-quote-chart/analytics-orders-quote-chart.component.html","./src/app/pages/analytics/analytics-report-popup/analytics-report-popup.component.ts","./src/app/pages/analytics/analytics-report-popup/analytics-report-popup.component.html","./src/app/pages/analytics/analytics-report-popup/report-filters/report-filters.component.ts","./src/app/pages/analytics/analytics-report-popup/report-filters/report-filters.component.html","./src/app/pages/analytics/analytics-volumes-nearby-airport-chart/analytics-volumes-nearby-airport-chart.component.ts","./src/app/pages/analytics/analytics-volumes-nearby-airport-chart/analytics-volumes-nearby-airport-chart.component.html","./src/app/pages/analytics/customer-capture-rate/customer-capture-rate.component.ts","./src/app/pages/analytics/customer-capture-rate/customer-capture-rate.component.html","./src/app/pages/antenna-status/antenna-status-grid/antenna-status-grid.component.ts","./src/app/pages/antenna-status/antenna-status-grid/antenna-status-grid.component.html","./src/app/pages/antenna-status/antenna-status-home/antenna-status-home.component.ts","./src/app/pages/antenna-status/antenna-status-home/antenna-status-home.component.html","./src/app/pages/associations/associations-dialog-new-association/associations-dialog-new-association.component.ts","./src/app/pages/associations/associations-dialog-new-association/associations-dialog-new-association.component.html","./src/app/pages/auth/authtoken/authtoken.component.ts","./src/app/pages/auth/authtoken/authtoken.component.html","./src/app/pages/auth/login/login.component.ts","./src/app/pages/auth/login/login.component.html","./src/app/pages/auth/reset-password/reset-password.component.ts","./src/app/pages/auth/reset-password/reset-password.component.html","./src/app/pages/contacts/contact-confirm-delete-modal/contact-confirm-delete-modal.component.ts","./src/app/pages/contacts/contact-confirm-delete-modal/contact-confirm-delete-modal.component.html","./src/app/pages/contacts/contacts-edit-modal/contacts-edit-modal.component.ts","./src/app/pages/contacts/contacts-edit-modal/contacts-edit-modal.component.html","./src/app/pages/contacts/contacts-edit/contacts-edit.component.ts","./src/app/pages/contacts/contacts-edit/contacts-edit.component.html","./src/app/pages/contacts/contacts-grid/contacts-grid.component.ts","./src/app/pages/contacts/contacts-grid/contacts-grid.component.html","./src/app/pages/contacts/contacts-home/contacts-home.component.ts","./src/app/pages/contacts/contacts-home/contacts-home.component.html","./src/app/pages/contacts/systemcontacts-grid/systemcontacts-grid.component.ts","./src/app/pages/contacts/systemcontacts-grid/systemcontacts-grid.component.html","./src/app/pages/contacts/systemcontacts-new-contact-modal/systemcontacts-new-contact-modal.component.ts","./src/app/pages/contacts/systemcontacts-new-contact-modal/systemcontacts-new-contact-modal.component.html","./src/app/pages/customer-aircrafts/customer-aircrafts-confirm-delete-modal/customer-aircrafts-confirm-delete-modal.component.ts","./src/app/pages/customer-aircrafts/customer-aircrafts-confirm-delete-modal/customer-aircrafts-confirm-delete-modal.component.html","./src/app/pages/customer-aircrafts/customer-aircrafts-dialog-new-aircraft/customer-aircrafts-dialog-new-aircraft.component.ts","./src/app/pages/customer-aircrafts/customer-aircrafts-dialog-new-aircraft/customer-aircrafts-dialog-new-aircraft.component.html","./src/app/pages/customer-aircrafts/customer-aircrafts-edit/customer-aircrafts-edit.component.ts","./src/app/pages/customer-aircrafts/customer-aircrafts-edit/customer-aircrafts-edit.component.html","./src/app/pages/customer-aircrafts/customer-aircrafts-grid/customer-aircrafts-grid.component.ts","./src/app/pages/customer-aircrafts/customer-aircrafts-grid/customer-aircrafts-grid.component.html","./src/app/pages/customer-aircrafts/customer-aircrafts-select-model-dialog/customer-aircrafts-select-model-dialog.component.ts","./src/app/pages/customer-aircrafts/customer-aircrafts-select-model-dialog/customer-aircrafts-select-model-dialog.component.html","./src/app/pages/customer-history/customer-aircraft-history/customer-aircraft-history.component.ts","./src/app/pages/customer-history/customer-aircraft-history/customer-aircraft-history.component.html","./src/app/pages/customer-history/customer-contact-history/customer-contact-history.component.ts","./src/app/pages/customer-history/customer-contact-history/customer-contact-history.component.html","./src/app/pages/customer-history/customer-history-details/customer-history-details.component.ts","./src/app/pages/customer-history/customer-history-details/customer-history-details.component.html","./src/app/pages/customer-history/customer-history/customer-history.component.ts","./src/app/pages/customer-history/customer-history/customer-history.component.html","./src/app/pages/customer-history/customer-info-by-group-history/customer-info-by-group-history.component.ts","./src/app/pages/customer-history/customer-info-by-group-history/customer-info-by-group-history.component.html","./src/app/pages/customer-history/cutomer-itp-mragin-history/cutomer-itp-mragin-history.component.ts","./src/app/pages/customer-history/cutomer-itp-mragin-history/cutomer-itp-mragin-history.component.html","./src/app/pages/customers/customer-company-type-dialog/customer-company-type-dialog.component.ts","./src/app/pages/customers/customer-company-type-dialog/customer-company-type-dialog.component.html","./src/app/pages/customers/customer-match-dialog/customer-match-dialog.component.ts","./src/app/pages/customers/customer-match-dialog/customer-match-dialog.component.html","./src/app/pages/customers/customer-tag-dialog/customer-tag-dialog.component.ts","./src/app/pages/customers/customer-tag-dialog/customer-tag-dialog.component.html","./src/app/pages/customers/customers-analytics/customers-analytics.component.ts","./src/app/pages/customers/customers-analytics/customers-analytics.component.html","./src/app/pages/customers/customers-dialog-new-customer/customers-dialog-new-customer.component.ts","./src/app/pages/customers/customers-dialog-new-customer/customers-dialog-new-customer.component.html","./src/app/pages/customers/customers-edit-dialog/customers-edit-dialog.component.ts","./src/app/pages/customers/customers-edit-dialog/customers-edit-dialog.component.html","./src/app/pages/customers/customers-edit/customers-edit.component.ts","./src/app/pages/customers/customers-edit/customers-edit.component.html","./src/app/pages/customers/customers-grid/customers-grid.component.ts","./src/app/pages/customers/customers-grid/customers-grid.component.html","./src/app/pages/customers/customers-home/customers-home.component.ts","./src/app/pages/customers/customers-home/customers-home.component.html","./src/app/pages/dashboards/dashboard-fbo-updated/dashboard-fbo-updated.component.ts","./src/app/pages/dashboards/dashboard-fbo-updated/dashboard-fbo-updated.component.html","./src/app/pages/dashboards/dashboard-fbo/dashboard-fbo.component.ts","./src/app/pages/dashboards/dashboard-fbo/dashboard-fbo.component.html","./src/app/pages/dashboards/dashboard-home/dashboard-home.component.ts","./src/app/pages/dashboards/dashboard-home/dashboard-home.component.html","./src/app/pages/demo-request-static-dialog/demo-request-static-dialog.component.ts","./src/app/pages/demo-request-static-dialog/demo-request-static-dialog.component.html","./src/app/pages/email-templates/email-templates-edit/email-templates-edit.component.ts","./src/app/pages/email-templates/email-templates-edit/email-templates-edit.component.html","./src/app/pages/email-templates/email-templates-grid/email-templates-grid.component.ts","./src/app/pages/email-templates/email-templates-grid/email-templates-grid.component.html","./src/app/pages/email-templates/email-templates-home/email-templates-home.component.ts","./src/app/pages/email-templates/email-templates-home/email-templates-home.component.html","./src/app/pages/fbo-geofencing/fbo-geofencing-dialog-new-airport/fbo-geofencing-dialog-new-airport.component.ts","./src/app/pages/fbo-geofencing/fbo-geofencing-dialog-new-airport/fbo-geofencing-dialog-new-airport.component.html","./src/app/pages/fbo-geofencing/fbo-geofencing-dialog-new-cluster/fbo-geofencing-dialog-new-cluster.component.ts","./src/app/pages/fbo-geofencing/fbo-geofencing-dialog-new-cluster/fbo-geofencing-dialog-new-cluster.component.html","./src/app/pages/fbo-geofencing/fbo-geofencing-grid/fbo-geofencing-grid.component.ts","./src/app/pages/fbo-geofencing/fbo-geofencing-grid/fbo-geofencing-grid.component.html","./src/app/pages/fbo-geofencing/fbo-geofencing-home/fbo-geofencing-home.component.ts","./src/app/pages/fbo-geofencing/fbo-geofencing-home/fbo-geofencing-home.component.html","./src/app/pages/fbo-geofencing/fbo-geofencing-map/fbo-geofencing-map.component.ts","./src/app/pages/fbo-geofencing/fbo-geofencing-map/fbo-geofencing-map.component.html","./src/app/pages/fbo-prices/fbo-prices-home/fbo-prices-home.component.ts","./src/app/pages/fbo-prices/fbo-prices-home/fbo-prices-home.component.html","./src/app/pages/fbo-prices/fbo-prices-select-default-template/fbo-prices-select-default-template.component.ts","./src/app/pages/fbo-prices/fbo-prices-select-default-template/fbo-prices-select-default-template.component.html","./src/app/pages/fbo-prices/fbo-prices-update-generator-grid/fbo-prices-update-generator-grid.component.ts","./src/app/pages/fbo-prices/fbo-prices-update-generator-grid/fbo-prices-update-generator-grid.component.html","./src/app/pages/fbo-prices/fbo-prices-update-generator/fbo-prices-update-generator.component.ts","./src/app/pages/fbo-prices/fbo-prices-update-generator/fbo-prices-update-generator.component.html","./src/app/pages/fbo-prices/fee-and-tax-settings-dialog/fee-and-tax-settings-dialog.component.ts","./src/app/pages/fbo-prices/fee-and-tax-settings-dialog/fee-and-tax-settings-dialog.component.html","./src/app/pages/fbo-prices/price-checker-dialog/price-checker-dialog.component.ts","./src/app/pages/fbo-prices/price-checker-dialog/price-checker-dialog.component.html","./src/app/pages/fbos-missed-orders/fbos-missed-orders-grid/fbos-missed-orders-grid.component.ts","./src/app/pages/fbos-missed-orders/fbos-missed-orders-grid/fbos-missed-orders-grid.component.html","./src/app/pages/fbos-missed-quotes/fbos-missed-quotes-grid/fbos-missed-quotes-grid.component.ts","./src/app/pages/fbos-missed-quotes/fbos-missed-quotes-grid/fbos-missed-quotes-grid.component.html","./src/app/pages/fbos/fbos-contacts/fbos-contacts.component.ts","./src/app/pages/fbos/fbos-contacts/fbos-contacts.component.html","./src/app/pages/fbos/fbos-dialog-new-fbo/fbos-dialog-new-fbo.component.ts","./src/app/pages/fbos/fbos-dialog-new-fbo/fbos-dialog-new-fbo.component.html","./src/app/pages/fbos/fbos-edit/fbos-edit.component.ts","./src/app/pages/fbos/fbos-edit/fbos-edit.component.html","./src/app/pages/fbos/fbos-grid-new-fbo-dialog/fbos-grid-new-fbo-dialog.component.ts","./src/app/pages/fbos/fbos-grid-new-fbo-dialog/fbos-grid-new-fbo-dialog.component.html","./src/app/pages/fbos/fbos-grid/fbos-grid.component.ts","./src/app/pages/fbos/fbos-grid/fbos-grid.component.html","./src/app/pages/fbos/fbos-home/fbos-home.component.ts","./src/app/pages/fbos/fbos-home/fbos-home.component.html","./src/app/pages/flight-watch/FlightWatchHelper.service.ts","./src/app/pages/flight-watch/aircraft-legend/aircraft-legend.component.ts","./src/app/pages/flight-watch/aircraft-legend/aircraft-legend.component.html","./src/app/pages/flight-watch/aircraft-popup-container/aircraft-popup-container.component.ts","./src/app/pages/flight-watch/aircraft-popup-container/aircraft-popup-container.component.html","./src/app/pages/flight-watch/aircraft-popup-container/flight-watch-aircraft-info/flight-watch-aircraft-info.component.ts","./src/app/pages/flight-watch/aircraft-popup-container/flight-watch-aircraft-info/flight-watch-aircraft-info.component.html","./src/app/pages/flight-watch/flight-watch-aicraft-grid/flight-watch-aicraft-grid.component.ts","./src/app/pages/flight-watch/flight-watch-aicraft-grid/flight-watch-aicraft-grid.component.html","./src/app/pages/flight-watch/flight-watch-aicraft-grid/flight-watch-aircraft-data-table/aicraft-expanded-detail/aicraft-expanded-detail.component.ts","./src/app/pages/flight-watch/flight-watch-aicraft-grid/flight-watch-aircraft-data-table/aicraft-expanded-detail/aicraft-expanded-detail.component.html","./src/app/pages/flight-watch/flight-watch-aicraft-grid/flight-watch-aircraft-data-table/flight-watch-aircraft-data-table.component.ts","./src/app/pages/flight-watch/flight-watch-aicraft-grid/flight-watch-aircraft-data-table/flight-watch-aircraft-data-table.component.html","./src/app/pages/flight-watch/flight-watch-filters/flight-watch-filters.component.ts","./src/app/pages/flight-watch/flight-watch-filters/flight-watch-filters.component.html","./src/app/pages/flight-watch/flight-watch-map-wrapper/flight-watch-map-wrapper.component.ts","./src/app/pages/flight-watch/flight-watch-map-wrapper/flight-watch-map-wrapper.component.html","./src/app/pages/flight-watch/flight-watch-map/aircraft-images.ts","./src/app/pages/flight-watch/flight-watch-map/flight-watch-map-services/aircraft-flight-watch.service.ts","./src/app/pages/flight-watch/flight-watch-map/flight-watch-map-services/fbo-flight-watch.service.ts","./src/app/pages/flight-watch/flight-watch-map/flight-watch-map-services/flight-watch-map.service.ts","./src/app/pages/flight-watch/flight-watch-map/flight-watch-map.component.ts","./src/app/pages/flight-watch/flight-watch-map/flight-watch-map.component.html","./src/app/pages/flight-watch/flight-watch.component.ts","./src/app/pages/flight-watch/flight-watch.component.html","./src/app/pages/flight-watch/services/flight-watch-map-shared.service.ts","./src/app/pages/fuelreqs/fuelreqs-grid-services/fuelreqs-grid-services.component.ts","./src/app/pages/fuelreqs/fuelreqs-grid-services/fuelreqs-grid-services.component.html","./src/app/pages/fuelreqs/fuelreqs-grid/fuelreqs-grid.component.ts","./src/app/pages/fuelreqs/fuelreqs-grid/fuelreqs-grid.component.html","./src/app/pages/fuelreqs/fuelreqs-home/fuelreqs-home.component.ts","./src/app/pages/fuelreqs/fuelreqs-home/fuelreqs-home.component.html","./src/app/pages/fuelreqs/fuelreqs-notes/fuelreqs-notes.component.ts","./src/app/pages/fuelreqs/fuelreqs-notes/fuelreqs-notes.component.html","./src/app/pages/group-analytics/group-analytics-customer-statistics/group-analytics-customer-statistics.component.ts","./src/app/pages/group-analytics/group-analytics-customer-statistics/group-analytics-customer-statistics.component.html","./src/app/pages/group-analytics/group-analytics-email-pricing-dialog/customer-email-grid/customer-email-grid.component.ts","./src/app/pages/group-analytics/group-analytics-email-pricing-dialog/customer-email-grid/customer-email-grid.component.html","./src/app/pages/group-analytics/group-analytics-email-pricing-dialog/group-analytics-email-pricing-dialog.component.ts","./src/app/pages/group-analytics/group-analytics-email-pricing-dialog/group-analytics-email-pricing-dialog.component.html","./src/app/pages/group-analytics/group-analytics-email-template-dialog/group-analytics-email-template-dialog.component.ts","./src/app/pages/group-analytics/group-analytics-email-template-dialog/group-analytics-email-template-dialog.component.html","./src/app/pages/group-analytics/group-analytics-fuel-vendor-sources/group-analytics-fuel-vendor-sources.component.ts","./src/app/pages/group-analytics/group-analytics-fuel-vendor-sources/group-analytics-fuel-vendor-sources.component.html","./src/app/pages/group-analytics/group-analytics-generate-dialog-grid/group-analytics-generate-dialog-grid.component.ts","./src/app/pages/group-analytics/group-analytics-generate-dialog-grid/group-analytics-generate-dialog-grid.component.html","./src/app/pages/group-analytics/group-analytics-generate-dialog/group-analytics-generate-dialog.component.ts","./src/app/pages/group-analytics/group-analytics-generate-dialog/group-analytics-generate-dialog.component.html","./src/app/pages/group-analytics/group-analytics-home/group-analytics-home.component.ts","./src/app/pages/group-analytics/group-analytics-home/group-analytics-home.component.html","./src/app/pages/group-analytics/group-analytics-intra-network-visits-report/group-analytics-intra-network-visits-report.component.ts","./src/app/pages/group-analytics/group-analytics-intra-network-visits-report/group-analytics-intra-network-visits-report.component.html","./src/app/pages/group-analytics/group-analytics-market-share/group-analytics-market-share.component.ts","./src/app/pages/group-analytics/group-analytics-market-share/group-analytics-market-share.component.html","./src/app/pages/group-customers/group-customers-grid/group-customers-grid.component.ts","./src/app/pages/group-customers/group-customers-grid/group-customers-grid.component.html","./src/app/pages/group-customers/group-customers-home/group-customers-home.component.ts","./src/app/pages/group-customers/group-customers-home/group-customers-home.component.html","./src/app/pages/groups/group-fbos-grid/group-fbos-grid.component.ts","./src/app/pages/groups/group-fbos-grid/group-fbos-grid.component.html","./src/app/pages/groups/groups-dialog-new-group/groups-dialog-new-group.component.ts","./src/app/pages/groups/groups-dialog-new-group/groups-dialog-new-group.component.html","./src/app/pages/groups/groups-edit/groups-edit.component.ts","./src/app/pages/groups/groups-edit/groups-edit.component.html","./src/app/pages/groups/groups-grid/groups-grid.component.ts","./src/app/pages/groups/groups-grid/groups-grid.component.html","./src/app/pages/groups/groups-home/groups-home.component.ts","./src/app/pages/groups/groups-home/groups-home.component.html","./src/app/pages/groups/groups-merge-dialog/groups-merge-dialog.component.ts","./src/app/pages/groups/groups-merge-dialog/groups-merge-dialog.component.html","./src/app/pages/lobby-view/lobby-view.component.ts","./src/app/pages/lobby-view/lobby-view.component.html","./src/app/pages/missed-orders/missedorders-grid/missedorders-grid.component.ts","./src/app/pages/missed-orders/missedorders-grid/missedorders-grid.component.html","./src/app/pages/pages.module.ts","./src/app/pages/pricing-templates/pricing-template-dialog-copy-template/pricing-template-dialog-copy-template.component.ts","./src/app/pages/pricing-templates/pricing-template-dialog-copy-template/pricing-template-dialog-copy-template.component.html","./src/app/pages/pricing-templates/pricing-template-dialog-delete-warning-template/pricing-template-dialog-delete-warning.component.ts","./src/app/pages/pricing-templates/pricing-template-dialog-delete-warning-template/pricing-template-dialog-delete-warning.component.html","./src/app/pages/pricing-templates/pricing-templates-dialog-new-template/pricing-templates-dialog-new-template.component.ts","./src/app/pages/pricing-templates/pricing-templates-dialog-new-template/pricing-templates-dialog-new-template.component.html","./src/app/pages/pricing-templates/pricing-templates-edit/pricing-templates-edit.component.ts","./src/app/pages/pricing-templates/pricing-templates-edit/pricing-templates-edit.component.html","./src/app/pages/pricing-templates/pricing-templates-grid/pricing-templates-grid.component.ts","./src/app/pages/pricing-templates/pricing-templates-grid/pricing-templates-grid.component.html","./src/app/pages/pricing-templates/pricing-templates-home/pricing-templates-home.component.ts","./src/app/pages/pricing-templates/pricing-templates-home/pricing-templates-home.component.html","./src/app/pages/pricing-templates/pricingTemplateCalc.service.ts","./src/app/pages/ramp-fees/ramp-fees-category/ramp-fees-category.component.ts","./src/app/pages/ramp-fees/ramp-fees-category/ramp-fees-category.component.html","./src/app/pages/ramp-fees/ramp-fees-dialog-new-fee/ramp-fees-dialog-new-fee.component.ts","./src/app/pages/ramp-fees/ramp-fees-dialog-new-fee/ramp-fees-dialog-new-fee.component.html","./src/app/pages/ramp-fees/ramp-fees-home/ramp-fees-home.component.ts","./src/app/pages/ramp-fees/ramp-fees-home/ramp-fees-home.component.html","./src/app/pages/ramp-fees/ramp-fees-import-information-dialog/ramp-fees-import-information-dialog.component.ts","./src/app/pages/ramp-fees/ramp-fees-import-information-dialog/ramp-fees-import-information-dialog.component.html","./src/app/pages/service-orders/service-orders-dialog-new/service-orders-dialog-new.component.ts","./src/app/pages/service-orders/service-orders-dialog-new/service-orders-dialog-new.component.html","./src/app/pages/service-orders/service-orders-dialog-order-items/service-orders-dialog-order-items.component.ts","./src/app/pages/service-orders/service-orders-dialog-order-items/service-orders-dialog-order-items.component.html","./src/app/pages/service-orders/service-orders-home/service-orders-home.component.ts","./src/app/pages/service-orders/service-orders-home/service-orders-home.component.html","./src/app/pages/service-orders/service-orders-item-list/service-orders-item-list.component.ts","./src/app/pages/service-orders/service-orders-item-list/service-orders-item-list.component.html","./src/app/pages/service-orders/service-orders-list/service-orders-list.component.ts","./src/app/pages/service-orders/service-orders-list/service-orders-list.component.html","./src/app/pages/services-and-fees-home/services-and-fees-home.component.ts","./src/app/pages/services-and-fees-home/services-and-fees-home.component.html","./src/app/pages/services-and-fees/item-input/item-input.component.ts","./src/app/pages/services-and-fees/item-input/item-input.component.html","./src/app/pages/services-and-fees/services-and-fees.component.ts","./src/app/pages/services-and-fees/services-and-fees.component.html","./src/app/pages/users/users-dialog-new-user/users-dialog-new-user.component.ts","./src/app/pages/users/users-dialog-new-user/users-dialog-new-user.component.html","./src/app/pages/users/users-edit/users-edit.component.ts","./src/app/pages/users/users-edit/users-edit.component.html","./src/app/pages/users/users-grid/users-grid.component.ts","./src/app/pages/users/users-grid/users-grid.component.html","./src/app/pages/users/users-home/users-home.component.ts","./src/app/pages/users/users-home/users-home.component.html","./src/app/services/acukwikairports.service.ts","./src/app/services/aircraftprices.service.ts","./src/app/services/aircrafts.service.ts","./src/app/services/airportfbogeofenceclustercoordinates.service.ts","./src/app/services/airportfbogeofenceclusters.service.ts","./src/app/services/airportwatch.service.ts","./src/app/services/app.service.ts","./src/app/services/associations.service.ts","./src/app/services/contactinfobyfbo.service.ts","./src/app/services/contactinfobygroups.service.ts","./src/app/services/contacts.service.ts","./src/app/services/customcustomertypes.service.ts","./src/app/services/customer-company-types.service.ts","./src/app/services/customeraircrafts.service.ts","./src/app/services/customercontacts.service.ts","./src/app/services/customerinfobygroup.service.ts","./src/app/services/customermargins.service.ts","./src/app/services/customers.service.ts","./src/app/services/customersviewedbyfbo.service.ts","./src/app/services/datetime.service.ts","./src/app/services/distribution.service.ts","./src/app/services/documents.service.ts","./src/app/services/emailcontent.service.ts","./src/app/services/favorites.service.ts","./src/app/services/fboairports.service.ts","./src/app/services/fbocontacts.service.ts","./src/app/services/fbofeeandtaxomitsbycustomer.service.ts","./src/app/services/fbofeeandtaxomitsbypricingtemplate.service.ts","./src/app/services/fbofeesandtaxes.service.ts","./src/app/services/fbomissedquoteslog.service.ts","./src/app/services/fbopreferences.service.ts","./src/app/services/fboprices.service.ts","./src/app/services/fbos.service.ts","./src/app/services/flightwatch.service.ts","./src/app/services/fuelreqs.service.ts","./src/app/services/groups.service.ts","./src/app/services/jetnet.service.ts","./src/app/services/landingsite.service.ts","./src/app/services/managefbo.service.ts","./src/app/services/mapbox/mapboxBase.ts","./src/app/services/oauth.service.ts","./src/app/services/paremeters.service.ts","./src/app/services/pricetiers.service.ts","./src/app/services/pricingtemplates.service.ts","./src/app/services/rampfees.service.ts","./src/app/services/rampfeesettings.service.ts","./src/app/services/security/authentication.service.ts","./src/app/services/serviceorder.service.ts","./src/app/services/servicesandfees.service.ts","./src/app/services/servicetypes.service.ts","./src/app/services/swim.service.ts","./src/app/services/tables/GridBase.ts","./src/app/services/tags.service.ts","./src/app/services/temporaryaddonmargin.service.ts","./src/app/services/text-editor/editorBase.ts","./src/app/services/user.service.ts","./src/app/services/utils/snackBar.service.ts","./src/app/shared/components/Agreements-and-documents-modal/Agreements-and-documents-modal.component.ts","./src/app/shared/components/Agreements-and-documents-modal/Agreements-and-documents-modal.component.html","./src/app/shared/components/account-profile/account-profile.component.ts","./src/app/shared/components/account-profile/account-profile.component.html","./src/app/shared/components/aircraft-assign-modal/aircraft-assign-modal.component.ts","./src/app/shared/components/aircraft-assign-modal/aircraft-assign-modal.component.html","./src/app/shared/components/airport-autocomplete/airport-autocomplete.component.ts","./src/app/shared/components/airport-autocomplete/airport-autocomplete.component.html","./src/app/shared/components/autocomplete-search/autocomplete-search.component.ts","./src/app/shared/components/autocomplete-search/autocomplete-search.component.html","./src/app/shared/components/close-confirmation/close-confirmation.component.ts","./src/app/shared/components/close-confirmation/close-confirmation.component.html","./src/app/shared/components/copy-confirmation/copy-confirmation.component.ts","./src/app/shared/components/copy-confirmation/copy-confirmation.component.html","./src/app/shared/components/csv-export-modal/csv-export-modal.component.ts","./src/app/shared/components/csv-export-modal/csv-export-modal.component.html","./src/app/shared/components/customer-action-status/customer-action-status.component.ts","./src/app/shared/components/customer-action-status/customer-action-status.component.html","./src/app/shared/components/delete-confirmation/delete-confirmation.component.ts","./src/app/shared/components/delete-confirmation/delete-confirmation.component.html","./src/app/shared/components/distribute-emails-confirmation/distribute-emails-confirmation.component.ts","./src/app/shared/components/distribute-emails-confirmation/distribute-emails-confirmation.component.html","./src/app/shared/components/distribution-wizard/distribution-wizard-main/distribution-wizard-main.component.ts","./src/app/shared/components/distribution-wizard/distribution-wizard-main/distribution-wizard-main.component.html","./src/app/shared/components/distribution-wizard/distribution-wizard-review/distribution-wizard-review.component.ts","./src/app/shared/components/distribution-wizard/distribution-wizard-review/distribution-wizard-review.component.html","./src/app/shared/components/email-content-edit/email-content-edit.component.ts","./src/app/shared/components/email-content-edit/email-content-edit.component.html","./src/app/shared/components/email-content-selection/email-content-selection.component.ts","./src/app/shared/components/email-content-selection/email-content-selection.component.html","./src/app/shared/components/email-templates-dialog-new-template/email-templates-dialog-new-template.component.ts","./src/app/shared/components/email-templates-dialog-new-template/email-templates-dialog-new-template.component.html","./src/app/shared/components/favorite-icon/favorite-icon.component.ts","./src/app/shared/components/favorite-icon/favorite-icon.component.html","./src/app/shared/components/fbo-prices-panel/fbo-prices-panel.component.ts","./src/app/shared/components/fbo-prices-panel/fbo-prices-panel.component.html","./src/app/shared/components/fee-and-tax-breakdown/fee-and-tax-breakdown.component.ts","./src/app/shared/components/fee-and-tax-breakdown/fee-and-tax-breakdown.component.html","./src/app/shared/components/forgot-password/forgot-password-dialog/forgot-password-dialog.component.ts","./src/app/shared/components/forgot-password/forgot-password-dialog/forgot-password-dialog.component.html","./src/app/shared/components/fuelreqs-export/fuelreqs-export.component.ts","./src/app/shared/components/fuelreqs-export/fuelreqs-export.component.html","./src/app/shared/components/jetnet-information/jetnet-information.component.ts","./src/app/shared/components/jetnet-information/jetnet-information.component.html","./src/app/shared/components/jetnet-search/jetnet-search.component.ts","./src/app/shared/components/jetnet-search/jetnet-search.component.html","./src/app/shared/components/login-modal/login-modal.component.ts","./src/app/shared/components/login-modal/login-modal.component.html","./src/app/shared/components/manage-confirmation/manage-confirmation.component.ts","./src/app/shared/components/manage-confirmation/manage-confirmation.component.html","./src/app/shared/components/multiselect-autocomplete/multiselect-autocomplete.component.ts","./src/app/shared/components/multiselect-autocomplete/multiselect-autocomplete.component.html","./src/app/shared/components/notification/notification.component.ts","./src/app/shared/components/notification/notification.component.html","./src/app/shared/components/preset-date-filter/preset-date-filter.component.ts","./src/app/shared/components/preset-date-filter/preset-date-filter.component.html","./src/app/shared/components/price-breakdown/fee-and-tax-breakdown-dialog-wrapper/fee-and-tax-breakdown-dialog-wrapper.component.ts","./src/app/shared/components/price-breakdown/fee-and-tax-breakdown-dialog-wrapper/fee-and-tax-breakdown-dialog-wrapper.component.html","./src/app/shared/components/price-breakdown/price-breakdown.component.ts","./src/app/shared/components/price-breakdown/price-breakdown.component.html","./src/app/shared/components/price-checker/price-checker.component.ts","./src/app/shared/components/price-checker/price-checker.component.html","./src/app/shared/components/pricing-expired-notification-group/pricing-expired-notification-group.component.ts","./src/app/shared/components/pricing-expired-notification-group/pricing-expired-notification-group.component.html","./src/app/shared/components/pricing-expired-notification/pricing-expired-notification.component.ts","./src/app/shared/components/pricing-expired-notification/pricing-expired-notification.component.html","./src/app/shared/components/proceed-confirmation/proceed-confirmation.component.ts","./src/app/shared/components/proceed-confirmation/proceed-confirmation.component.html","./src/app/shared/components/request-demo-modal/request-demo-modal.component.ts","./src/app/shared/components/request-demo-modal/request-demo-modal.component.html","./src/app/shared/components/request-demo-success/request-demo-success.component.ts","./src/app/shared/components/request-demo-success/request-demo-success.component.html","./src/app/shared/components/save-confirmation/save-confirmation.component.ts","./src/app/shared/components/save-confirmation/save-confirmation.component.html","./src/app/shared/components/statistics-orders-by-location/statistics-orders-by-location.component.ts","./src/app/shared/components/statistics-orders-by-location/statistics-orders-by-location.component.html","./src/app/shared/components/statistics-total-aircraft/statistics-total-aircraft.component.ts","./src/app/shared/components/statistics-total-aircraft/statistics-total-aircraft.component.html","./src/app/shared/components/statistics-total-customers/statistics-total-customers.component.ts","./src/app/shared/components/statistics-total-customers/statistics-total-customers.component.html","./src/app/shared/components/statistics-total-orders/statistics-total-orders.component.ts","./src/app/shared/components/statistics-total-orders/statistics-total-orders.component.html","./src/app/shared/components/table-column-filter/table-column-filter.component.ts","./src/app/shared/components/table-column-filter/table-column-filter.component.html","./src/app/shared/components/table-global-search/table-global-search.component.ts","./src/app/shared/components/table-global-search/table-global-search.component.html","./src/app/shared/components/table-settings/table-settings.component.ts","./src/app/shared/components/table-settings/table-settings.component.html","./src/app/shared/components/zoho-chat/WindowRef.ts","./src/app/shared/directives/click-stop-propagation.directive.ts","./src/app/shared/pipes/boolean/booleanToText.pipe.ts","./src/app/shared/pipes/dateTime/ToReadableDateTime.pipe.ts","./src/app/shared/pipes/dateTime/getTime.pipe.ts","./src/app/shared/pipes/decimal/currencyPresicion.pipe.ts","./src/app/shared/pipes/decimal/decimal-precision.pipe.ts","./src/app/shared/pipes/null/NullOrEmptyToDefault.pipe.ts","./src/app/shared/pipes/price/ToPriceFormat.pipe.ts","./src/app/shared/pipes/safe-html-pipe.pipe.ts","./src/app/shared/pipes/time/ToReadableTime.pipe.ts","./src/app/store/actions/customer/index.ts","./src/app/store/actions/group/index.ts","./src/app/store/actions/pricing-template/index.ts","./src/app/store/reducers/customer/index.ts","./src/app/store/reducers/group/index.ts","./src/app/store/reducers/index.ts","./src/app/store/reducers/pricing-template/index.ts","./src/app/store/selectors/customer/index.ts","./src/app/store/selectors/group/index.ts","./src/app/store/selectors/pricing-template/index.ts","./src/app/ui/components/addition-navbar/addition-navbar.component.ts","./src/app/ui/components/addition-navbar/addition-navbar.component.html","./src/app/ui/components/footer/footer.component.ts","./src/app/ui/components/footer/footer.component.html","./src/app/ui/components/horizontal-navbar/horizontal-navbar.component.ts","./src/app/ui/components/horizontal-navbar/horizontal-navbar.component.html","./src/app/ui/components/incoming-favorite-aircraft-info/incoming-favorite-aircraft-info.component.ts","./src/app/ui/components/incoming-favorite-aircraft-info/incoming-favorite-aircraft-info.component.html","./src/app/ui/components/logo/logo.component.ts","./src/app/ui/components/logo/logo.component.html","./src/app/ui/components/menu/menu.component.ts","./src/app/ui/components/menu/menu.component.html","./src/app/ui/components/menu/menu.service.ts","./src/app/ui/components/vertical-navbar/vertical-navbar.component.ts","./src/app/ui/components/vertical-navbar/vertical-navbar.component.html","./src/app/ui/ui.module.ts","./src/environments/environment.ts","./src/main.ts","./src/utils/aircraft.ts","./src/utils/coordinates.ts","./src/utils/email.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|C:\\BuildAgent\\work\\c38cfe01cf631cc7\\FBOLinx.Web\\FBOLinx.Web\\ClientApp\\node_modules\\xlsx-js-style\\dist|fs","ignored|C:\\BuildAgent\\work\\c38cfe01cf631cc7\\FBOLinx.Web\\FBOLinx.Web\\ClientApp\\node_modules\\xlsx-js-style\\dist|stream"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { BooleanToTextPipe } from './shared/pipes/boolean/booleanToText.pipe';\r\nimport { GetTimePipe } from './shared/pipes/dateTime/getTime.pipe';\r\nimport { ToReadableDateTimePipe } from './shared/pipes/dateTime/ToReadableDateTime.pipe';\r\nimport { NullOrEmptyToDefault } from './shared/pipes/null/NullOrEmptyToDefault.pipe';\r\nimport { ToPriceFormatPipe } from './shared/pipes/price/ToPriceFormat.pipe';\r\nimport { SafeHtmlPipe } from './shared/pipes/safe-html-pipe.pipe';\r\nimport { ToReadableTimePipe } from './shared/pipes/time/ToReadableTime.pipe';\r\n\r\n@NgModule({\r\n declarations: [SafeHtmlPipe,BooleanToTextPipe,NullOrEmptyToDefault,ToPriceFormatPipe,ToReadableDateTimePipe,ToReadableTimePipe,GetTimePipe],\r\n exports: [SafeHtmlPipe,BooleanToTextPipe,NullOrEmptyToDefault,ToPriceFormatPipe,ToReadableDateTimePipe,ToReadableTimePipe,GetTimePipe],\r\n imports: [CommonModule],\r\n})\r\nexport class AppPipesModule {}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\n// Guards\r\nimport { AuthGuard } from './guards';\r\n// Layout Components\r\nimport { DefaultLayoutComponent } from './layouts/default/default.component';\r\nimport { LandingSiteLayoutComponent } from './layouts/landing-site/landing-site.component';\r\nimport { OutsideTheGateLayoutComponent } from './layouts/outside-the-gate/outside-the-gate.component';\r\nimport { AnalyticsHomeComponent } from './pages/analytics/analytics-home/analytics-home.component';\r\n// Page Components\r\nimport { AuthtokenComponent } from './pages/auth/authtoken/authtoken.component';\r\nimport { LoginComponent } from './pages/auth/login/login.component';\r\nimport { ResetPasswordComponent } from './pages/auth/reset-password/reset-password.component';\r\nimport { CustomersEditComponent } from './pages/customers/customers-edit/customers-edit.component';\r\nimport { CustomersHomeComponent } from './pages/customers/customers-home/customers-home.component';\r\nimport { DashboardFboComponent } from './pages/dashboards/dashboard-fbo/dashboard-fbo.component';\r\nimport { DashboardFboUpdatedComponent } from './pages/dashboards/dashboard-fbo-updated/dashboard-fbo-updated.component';\r\nimport { DashboardHomeComponent } from './pages/dashboards/dashboard-home/dashboard-home.component';\r\nimport { EmailTemplatesEditComponent } from './pages/email-templates/email-templates-edit/email-templates-edit.component';\r\nimport { EmailTemplatesHomeComponent } from './pages/email-templates/email-templates-home/email-templates-home.component';\r\nimport { FboPricesHomeComponent } from './pages/fbo-prices/fbo-prices-home/fbo-prices-home.component';\r\nimport { FbosEditComponent } from './pages/fbos/fbos-edit/fbos-edit.component';\r\nimport { FbosHomeComponent } from './pages/fbos/fbos-home/fbos-home.component';\r\nimport { FlightWatchComponent } from './pages/flight-watch/flight-watch.component';\r\nimport { FuelreqsHomeComponent } from './pages/fuelreqs/fuelreqs-home/fuelreqs-home.component';\r\nimport { GroupAnalyticsHomeComponent } from './pages/group-analytics/group-analytics-home/group-analytics-home.component';\r\nimport { GroupCustomersHomeComponent } from './pages/group-customers/group-customers-home/group-customers-home.component';\r\nimport { GroupsEditComponent } from './pages/groups/groups-edit/groups-edit.component';\r\nimport { GroupsHomeComponent } from './pages/groups/groups-home/groups-home.component';\r\nimport { PricingTemplatesEditComponent } from './pages/pricing-templates/pricing-templates-edit/pricing-templates-edit.component';\r\nimport { PricingTemplatesHomeComponent } from './pages/pricing-templates/pricing-templates-home/pricing-templates-home.component';\r\nimport { RampFeesHomeComponent } from './pages/ramp-fees/ramp-fees-home/ramp-fees-home.component';\r\nimport { UsersEditComponent } from './pages/users/users-edit/users-edit.component';\r\nimport { UsersHomeComponent } from './pages/users/users-home/users-home.component';\r\nimport { FboGeofencingHomeComponent } from './pages/fbo-geofencing/fbo-geofencing-home/fbo-geofencing-home.component';\r\nimport { AntennaStatusHomeComponent } from './pages/antenna-status/antenna-status-home/antenna-status-home.component';\r\nimport { LobbyViewComponent } from './pages/lobby-view/lobby-view.component';\r\nimport { PublicViewComponent } from './layouts/public-view/public-view.component';\r\nimport { AboutFbolinxComponent } from './pages/about-fbolinx/about-fbolinx.component';\r\nimport { ServiceOrdersHomeComponent } from './pages/service-orders/service-orders-home/service-orders-home.component';\r\nimport { ServicesAndFeesComponent } from './pages/services-and-fees/services-and-fees.component';\r\nimport { ServicesAndFeesHomeComponent } from './pages/services-and-fees-home/services-and-fees-home.component';\r\n\r\nconst defaultRoutes: Routes = [\r\n {\r\n canActivate: [AuthGuard],\r\n component: CustomersHomeComponent,\r\n path: 'customers',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: CustomersEditComponent,\r\n path: 'customers/:id',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: DashboardHomeComponent,\r\n path: 'dashboard',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: DashboardFboComponent,\r\n path: 'dashboard-fbo',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: DashboardFboUpdatedComponent,\r\n path: 'dashboard-fbo-updated',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: DashboardFboUpdatedComponent,\r\n path: 'dashboard-csr',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: FboPricesHomeComponent,\r\n path: 'fbo-prices',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: GroupsHomeComponent,\r\n data: {\r\n expectedRoles: [3],\r\n },\r\n path: 'groups',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: GroupsEditComponent,\r\n data: {\r\n expectedRoles: [3],\r\n },\r\n path: 'groups/:id',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: FbosHomeComponent,\r\n data: {\r\n expectedRoles: [2, 3],\r\n },\r\n path: 'fbos',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: FbosEditComponent,\r\n data: {\r\n expectedRoles: [2, 3],\r\n },\r\n path: 'fbos/:id',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: FboGeofencingHomeComponent,\r\n data: {\r\n expectedRoles: [3],\r\n },\r\n path: 'fbo-geofencing',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: AntennaStatusHomeComponent,\r\n data: {\r\n expectedRoles: [3],\r\n },\r\n path: 'antenna-status',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: GroupAnalyticsHomeComponent,\r\n data: {\r\n expectedRoles: [2, 3],\r\n },\r\n path: 'group-analytics',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: GroupCustomersHomeComponent,\r\n data: {\r\n expectedRoles: [2, 3],\r\n },\r\n path: 'group-customers',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: FuelreqsHomeComponent,\r\n path: 'fuelreqs',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: PricingTemplatesHomeComponent,\r\n path: 'pricing-templates',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: PricingTemplatesEditComponent,\r\n path: 'pricing-templates/:id',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: EmailTemplatesHomeComponent,\r\n path: 'email-templates',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: EmailTemplatesEditComponent,\r\n path: 'email-templates/:id',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: ServicesAndFeesHomeComponent,\r\n path: 'services-and-fees',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: AnalyticsHomeComponent,\r\n path: 'analytics',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: UsersHomeComponent,\r\n data: {\r\n expectedRoles: [1, 2, 3],\r\n },\r\n path: 'users',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: UsersEditComponent,\r\n data: {\r\n expectedRoles: [1, 2, 3],\r\n },\r\n path: 'users/:id',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: FlightWatchComponent,\r\n path: 'flight-watch',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: AboutFbolinxComponent,\r\n data: {\r\n expectedRoles: [6],\r\n },\r\n path: 'about-fbolinx',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: ServiceOrdersHomeComponent,\r\n path: 'service-orders',\r\n },\r\n {\r\n canActivate: [AuthGuard],\r\n component: DashboardHomeComponent,\r\n path: '**',\r\n }\r\n];\r\n\r\nconst outsideTheGateRoutes: Routes = [\r\n {\r\n component: AuthtokenComponent,\r\n path: 'auth',\r\n },\r\n];\r\n\r\nconst publicViewRoutes: Routes = [\r\n {\r\n canActivate: [AuthGuard],\r\n component: LobbyViewComponent,\r\n path: 'lobby-view',\r\n },\r\n];\r\n\r\nconst routes: Routes = [\r\n {\r\n component: LandingSiteLayoutComponent,\r\n path: '',\r\n //children: landingSiteRoutes,\r\n },\r\n {\r\n children: defaultRoutes,\r\n component: DefaultLayoutComponent,\r\n path: 'default-layout',\r\n },\r\n {\r\n children: publicViewRoutes,\r\n component: PublicViewComponent,\r\n path: 'public-layout',\r\n },\r\n {\r\n children: outsideTheGateRoutes,\r\n component: OutsideTheGateLayoutComponent,\r\n path: 'outside-the-gate-layout',\r\n },\r\n {\r\n component: LoginComponent,\r\n path: 'app-login',\r\n },\r\n {\r\n component: ResetPasswordComponent,\r\n path: 'reset-password',\r\n },\r\n {\r\n component: LandingSiteLayoutComponent,\r\n path: '**',\r\n //children: landingSiteRoutes,\r\n },\r\n];\r\n\r\n@NgModule({\r\n exports: [RouterModule],\r\n imports: [\r\n RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' }),\r\n ],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { PrimeNGConfig } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n styleUrls: ['./app.component.scss'],\r\n templateUrl: './app.component.html',\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'FBOLinx';\r\n\r\n constructor(private primengConfig: PrimeNGConfig) {}\r\n\r\n ngOnInit() {\r\n this.primengConfig.ripple = true;\r\n }\r\n}\r\n","\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\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 { 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 { MatFormFieldModule } from '@angular/material/form-field';\r\n// Angular Material Modules\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\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 { MatSelectModule } from '@angular/material/select';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\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 { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { EffectsModule } from '@ngrx/effects';\r\nimport { StoreModule } from '@ngrx/store';\r\nimport { StoreDevtoolsModule } from '@ngrx/store-devtools';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\nimport { PopoverModule } from 'ngx-smart-popover';\r\nimport { NgxUiLoaderModule } from 'ngx-ui-loader';\r\nimport {\r\n NgxMatDatetimePickerModule,\r\n NgxMatNativeDateModule,\r\n NgxMatTimepickerModule\r\n} from '@angular-material-components/datetime-picker';\r\n\r\nimport { environment } from '../environments/environment';\r\nimport { AppComponent } from './app.component';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { JwtInterceptor } from './helpers';\r\nimport { DefaultLayoutComponent } from './layouts/default/default.component';\r\nimport { LandingSiteLayoutComponent } from './layouts/landing-site/landing-site.component';\r\nimport { OutsideTheGateLayoutComponent } from './layouts/outside-the-gate/outside-the-gate.component';\r\nimport { SharedService } from './layouts/shared-service';\r\nimport { NiComponentsModule } from './ni-components/ni-components.module';\r\nimport { PagesModule } from './pages/pages.module';\r\n// Services\r\nimport { AcukwikairportsService } from './services/acukwikairports.service';\r\nimport { AircraftpricesService } from './services/aircraftprices.service';\r\nimport { AircraftsService } from './services/aircrafts.service';\r\nimport { AirportWatchService } from './services/airportwatch.service';\r\nimport { AppService } from './services/app.service';\r\nimport { ContactinfobyfboService } from './services/contactinfobyfbo.service';\r\nimport { ContactinfobygroupsService } from './services/contactinfobygroups.service';\r\nimport { ContactsService } from './services/contacts.service';\r\nimport { CustomcustomertypesService } from './services/customcustomertypes.service';\r\nimport { CustomerCompanyTypesService } from './services/customer-company-types.service';\r\nimport { CustomeraircraftsService } from './services/customeraircrafts.service';\r\nimport { CustomercontactsService } from './services/customercontacts.service';\r\nimport { CustomerinfobygroupService } from './services/customerinfobygroup.service';\r\nimport { CustomermarginsService } from './services/customermargins.service';\r\nimport { CustomersService } from './services/customers.service';\r\nimport { CustomersviewedbyfboService } from './services/customersviewedbyfbo.service';\r\nimport { DistributionService } from './services/distribution.service';\r\nimport { EmailcontentService } from './services/emailcontent.service';\r\nimport { FboairportsService } from './services/fboairports.service';\r\nimport { FbocontactsService } from './services/fbocontacts.service';\r\nimport { FbofeeandtaxomitsbycustomerService } from './services/fbofeeandtaxomitsbycustomer.service';\r\nimport { FbofeeandtaxomitsbypricingtemplateService } from './services/fbofeeandtaxomitsbypricingtemplate.service';\r\nimport { FbofeesandtaxesService } from './services/fbofeesandtaxes.service';\r\nimport { FbomissedquoteslogService } from './services/fbomissedquoteslog.service';\r\nimport { FbopreferencesService } from './services/fbopreferences.service';\r\nimport { FbopricesService } from './services/fboprices.service';\r\nimport { FbosService } from './services/fbos.service';\r\nimport { FuelreqsService } from './services/fuelreqs.service';\r\nimport { GroupsService } from './services/groups.service';\r\nimport { LandingsiteService } from './services/landingsite.service';\r\nimport { Parametri } from './services/paremeters.service';\r\nimport { PricetiersService } from './services/pricetiers.service';\r\nimport { PricingtemplatesService } from './services/pricingtemplates.service';\r\nimport { RampfeesService } from './services/rampfees.service';\r\nimport { RampfeesettingsService } from './services/rampfeesettings.service';\r\nimport { TemporaryAddOnMarginService } from './services/temporaryaddonmargin.service';\r\nimport { UserService } from './services/user.service';\r\nimport { LoginModalComponent } from './shared/components/login-modal/login-modal.component';\r\nimport { RequestDemoModalComponent } from './shared/components/request-demo-modal/request-demo-modal.component';\r\nimport { RequestDemoSuccessComponent } from './shared/components/request-demo-success/request-demo-success.component';\r\nimport { metaReducers, reducers } from './store/reducers';\r\nimport { UIModule } from './ui/ui.module';\r\nimport { TagsService } from './services/tags.service';\r\nimport { AssociationsService } from './services/associations.service';\r\nimport { AirportFboGeofenceClustersService } from './services/airportfbogeofenceclusters.service';\r\nimport { AirportFboGeofenceClusterCoordinatesService } from './services/airportfbogeofenceclustercoordinates.service';\r\nimport { DateTimeService } from './services/datetime.service';\r\nimport { SwimService } from './services/swim.service';\r\nimport { FlightWatchService } from './services/flightwatch.service';\r\nimport { FlightWatchHelper } from './pages/flight-watch/FlightWatchHelper.service';\r\nimport { PublicViewComponent } from './layouts/public-view/public-view.component';\r\nimport { FileHelper } from './helpers/files/file.helper';\r\nimport { PricingTemplateCalcService } from './pages/pricing-templates/pricingTemplateCalc.service';\r\nimport { DocumentService } from './services/documents.service';\r\nimport { ServiceOrderService } from './services/serviceorder.service';\r\nimport { ServicesAndFeesService } from './services/servicesandfees.service';\r\nimport { ServiceTypeService } from './services/servicetypes.service';\r\nimport { SnackBarService } from './services/utils/snackBar.service';\r\nimport { FavoritesService } from './services/favorites.service';\r\nimport { FormValidationHelperService } from './helpers/forms/formValidationHelper.service';\r\nimport { FlightWatchMapSharedService } from './pages/flight-watch/services/flight-watch-map-shared.service';\r\nimport { ManageFboGroupsService } from './services/managefbo.service';\r\nimport { StringHelperService } from './helpers/strings/stringHelper.service';\r\nimport {JetNetService} from './services/jetnet.service';\r\nimport { HttpErrorInterceptor } from './interceptors/http-error.interceptor';\r\nimport { AuthenticationService } from './services/security/authentication.service';\r\n@NgModule({\r\n bootstrap: [AppComponent],\r\n declarations: [\r\n AppComponent,\r\n DefaultLayoutComponent,\r\n PublicViewComponent,\r\n LandingSiteLayoutComponent,\r\n OutsideTheGateLayoutComponent,\r\n LoginModalComponent,\r\n RequestDemoModalComponent,\r\n RequestDemoSuccessComponent,\r\n ],\r\n imports: [\r\n BrowserAnimationsModule,\r\n BrowserModule,\r\n FormsModule,\r\n DragDropModule,\r\n ReactiveFormsModule,\r\n MatBadgeModule,\r\n MatIconModule,\r\n MatAutocompleteModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatSelectModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n NgxUiLoaderModule,\r\n NgxMatDatetimePickerModule,\r\n NgxMatTimepickerModule,\r\n NgxMatNativeDateModule,\r\n TextMaskModule,\r\n EffectsModule.forRoot([]),\r\n StoreModule.forRoot(reducers, {\r\n metaReducers,\r\n }),\r\n StoreDevtoolsModule.instrument({\r\n logOnly: environment.production,\r\n maxAge: 25,\r\n }),\r\n AppRoutingModule,\r\n UIModule,\r\n NiComponentsModule,\r\n PagesModule,\r\n PopoverModule,\r\n ],\r\n providers: [\r\n {\r\n multi: true,\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: JwtInterceptor,\r\n },\r\n {\r\n multi: true,\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpErrorInterceptor,\r\n },\r\n AcukwikairportsService,\r\n AircraftsService,\r\n AircraftpricesService,\r\n AuthenticationService,\r\n ContactinfobyfboService,\r\n ContactinfobygroupsService,\r\n ContactsService,\r\n CustomcustomertypesService,\r\n CustomeraircraftsService,\r\n CustomerCompanyTypesService,\r\n CustomercontactsService,\r\n CustomerinfobygroupService,\r\n CustomermarginsService,\r\n CustomersService,\r\n CustomersviewedbyfboService,\r\n DistributionService,\r\n EmailcontentService,\r\n FboairportsService,\r\n FbocontactsService,\r\n FbofeesandtaxesService,\r\n FbofeeandtaxomitsbycustomerService,\r\n FbofeeandtaxomitsbypricingtemplateService,\r\n FbomissedquoteslogService,\r\n FbopreferencesService,\r\n FbopricesService,\r\n FbosService,\r\n FuelreqsService,\r\n GroupsService,\r\n LandingsiteService,\r\n Parametri,\r\n PricetiersService,\r\n PricingtemplatesService,\r\n RampfeesService,\r\n RampfeesettingsService,\r\n SharedService,\r\n TemporaryAddOnMarginService,\r\n UserService,\r\n AppService,\r\n AirportWatchService,\r\n TagsService,\r\n AssociationsService,\r\n AirportFboGeofenceClustersService,\r\n AirportFboGeofenceClusterCoordinatesService,\r\n DateTimeService,\r\n SwimService,\r\n FlightWatchService,\r\n FlightWatchHelper,\r\n FileHelper,\r\n PricingTemplateCalcService,\r\n DocumentService,\r\n ServiceOrderService,\r\n ServicesAndFeesService,\r\n ServiceTypeService,\r\n SnackBarService,\r\n FavoritesService,\r\n FormValidationHelperService,\r\n FlightWatchMapSharedService,\r\n ManageFboGroupsService,\r\n StringHelperService,\r\n JetNetService\r\n ],\r\n})\r\nexport class AppModule { }\r\n","export const localStorageAccessConstant = {\r\n icao: 'icao',\r\n fbo: 'fbo',\r\n fboId: 'fboId',\r\n conductorFbo: 'conductorFbo',\r\n groupId: 'groupId',\r\n impersonatedrole: 'impersonatedrole',\r\n managerGroupId: 'managerGroupId',\r\n favoriteAircrafts: 'favoriteAircrafts',\r\n accountType: 'accountType',\r\n dismissedFavoriteAircrafts: 'dismissedFavoriteAircrafts',\r\n notifiedFavoriteAircraft: 'notifiedFavoriteAircraft',\r\n isSingleSourceFbo: 'isSingleSourceFbo',\r\n isNetworkFbo: 'isNetworkFbo',\r\n currentUser: 'currentUser',\r\n decimalPrecision: 'decimalPrecision',\r\n isJetNetIntegrationEnabled: 'isJetNetIntegrationEnabled',\r\n refreshToken : 'refreshToken'\r\n}\r\n","export const urls = {\r\n demoRequestUrl: 'https://outlook.office365.com/owa/calendar/FBOLinxSales@fuelerlinx.com/bookings/',\r\n}\r\n","// todo: create a object constant and change every tragget to constants\r\nexport const locationChangedEvent = 'location changed';\r\nexport const icaoChangedEvent = 'icao changed';\r\nexport const fboPricesUpdatedEvent = 'fbo prices updated';\r\nexport const fboChangedEvent = 'fbo changed';\r\nexport const menuTooltipShowedEvent = 'menu tooltips showed';\r\nexport const customerUpdatedEvent = 'customer updated';\r\nexport const fboProductPreferenceChangeEvent = 'fbo product preference change'\r\nexport const fboPricesClearedEvent = 'fbo prices cleared';\r\nexport const deleteGroupEvent = 'group deleted';\r\nexport const resetMissedOrders = 'reset missed orders';\r\nexport const fboPricesLoadedEvent = 'fbo-prices-loaded';\r\nexport const serviceOrdersChangedEvent = 'service-orders-changed';\r\nexport const flightWatchDataEvent = 'flightWatchDataEvent';\r\nexport const flyToOnMapEvent = 'flyToOnMap';\r\nexport const accountTypeChangedEvent = 'account-type-changed';\r\nexport const fetchFlighWatchDataEvent = 'fetch-flighWatch-data';\r\n","export enum ApplicableTaxFlights {\r\n Never = 0,\r\n DomesticOnly = 1,\r\n InternationalOnly = 2,\r\n All = 3,\r\n}\r\n","export enum DocumentAcceptanceFlag {\r\n ForceAccepted = 0,\r\n Accepted = 1,\r\n NotAcceptedRequired = 2\r\n}\r\n\r\nexport enum DocumentTypeEnum {\r\n EULA = 0,\r\n Cookie = 1,\r\n Privacy = 2\r\n}\r\n\r\nexport const DocumentTypeEnumDescription: Record = {\r\n [DocumentTypeEnum.EULA]: \"EULA\",\r\n [DocumentTypeEnum.Cookie]: \"Cookie Policy\",\r\n [DocumentTypeEnum.Privacy]: \"Privacy Policy\"\r\n };\r\n","export enum FeeCalculationApplyingTypes {\r\n PreMargin = 0,\r\n PostMargin = 1,\r\n}\r\n","export enum FeeCalculationTypes {\r\n FlatPerGallon = 0,\r\n Percentage = 1,\r\n // Obsolete\r\n PercentageOfTotal = 2,\r\n}\r\n","export enum FlightTypeClassifications {\r\n NotSet = 0,\r\n Private = 1,\r\n Commercial = 2,\r\n All = 3,\r\n}\r\n","export enum FlightLegStatus {\r\n EnRoute,\r\n Landing,\r\n TaxiingDestination,\r\n Arrived,\r\n Departing,\r\n TaxiingOrigin\r\n}\r\nexport enum SwimType {\r\n Arrival ,\r\n Departure\r\n}\r\nexport enum coordinatesSource {\r\n Antenna = 'Antenna',\r\n Swim = 'SWIM',\r\n None = 'None'\r\n}\r\n","export enum rampfeeCategoryType {\r\n aicraft = 2,\r\n weightRange = 3,\r\n wingspan = 4,\r\n tailnumber = 5,\r\n}\r\n","export enum ServiceOrderAppliedDateTypes {\r\n Arrival = 0,\r\n Departure = 1\r\n}\r\n","export enum StringFilterConditions {\r\n Contains = 0,\r\n DoesNotContain = 1\r\n}\r\n","export enum defaultStringsEnum {\r\n unknown = 'unknown',\r\n tbd = 'TBD',\r\n empty = '',\r\n}\r\n","export enum UserRole {\r\n NotSet = 0,\r\n Primary = 1,\r\n GroupAdmin = 2,\r\n Conductor = 3,\r\n Member = 4,\r\n CSR = 5,\r\n NonRev = 6,\r\n X1 = 7\r\n}\r\nexport enum AccountType {\r\n Premium = 0,\r\n Freemium = 1\r\n}\r\n\r\n//todo: evaluate if types are better over interface and change the code where types are used\r\nexport const accountStatusType: 'all' | 'active' | 'inactive' = 'all';\r\nexport const userAccountType: 'all' | 'premium' | 'freemium' = 'premium';","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n CanActivate,\r\n Router,\r\n RouterStateSnapshot,\r\n} from '@angular/router';\r\n\r\nimport { User } from '../models/user';\r\nimport { AuthenticationService } from '../services/security/authentication.service';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthGuard implements CanActivate {\r\n private currentUser: User;\r\n\r\n constructor(\r\n private router: Router,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n this.authenticationService.currentUser.subscribe(\r\n (x) => (this.currentUser = x)\r\n );\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n // const currentUser = this.authenticationService.currentUserValue;\r\n\r\n if (this.currentUser) {\r\n let expectedRoles = [];\r\n if (route.data && route.data.expectedRoles) {\r\n expectedRoles = route.data.expectedRoles;\r\n }\r\n\r\n if (\r\n expectedRoles.length === 0 ||\r\n expectedRoles.indexOf(this.currentUser.role) > -1 ||\r\n expectedRoles.indexOf(this.currentUser.impersonatedRole) > -1\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n // not logged in so redirect to login page with the return url\r\n this.router.navigate(['/landing-site'], {\r\n queryParams: { returnUrl: state.url },\r\n });\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FileHelper{\r\n private imgSizeLimitinBytes: number = 1048576; // 1 MB in bytes\r\n private imgLargeImageErrorMsg: string = \"The image size exceeds the 1 MB limit. Please use an image smaller than 1 MB.\";\r\n\r\n constructor(private snackBar: MatSnackBar) { }\r\n\r\n isValidImageSize(imageSizeinBytes: number): boolean{\r\n if (this.imgSizeLimitinBytes < imageSizeinBytes) {\r\n this.snackBar.open(this.imgLargeImageErrorMsg, \"X\");\r\n return false;\r\n }\r\n else\r\n return true;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FormValidationHelperService {\r\n\r\n constructor() { }\r\n public noWhitespaceValidator(control: FormControl) {\r\n return (control.value || '' ).trim().length? null : { 'whitespace': true };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StringHelperService {\r\n\r\nconstructor() { }\r\n getNumberInputStepDefaultValue(){\r\n let storedDecimalSettings = localStorage.getItem(localStorageAccessConstant.decimalPrecision) ?? 4;\r\n let decimalPrecision = Number(storedDecimalSettings) ?? 4;\r\n return \"0.\" + \"0\".repeat(decimalPrecision - 1) + \"1\";\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpErrorResponse\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { SnackBarService } from '../services/utils/snackBar.service';\r\nimport { AppService } from '../services/app.service';\r\nimport { AuthenticationService } from '../services/security/authentication.service';\r\n\r\n@Injectable()\r\nexport class HttpErrorInterceptor implements HttpInterceptor {\r\n private errorSnackBarDuration: number = 4000;\r\n private refreshtokenUrl: string = 'app-refresh-token';\r\n private logTitle: string = 'HttpErrorInterceptor';\r\n \r\n constructor(private snackbarService: SnackBarService,\r\n private authenticationService: AuthenticationService,\r\n private appService: AppService) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n this.appService.logData(this.logTitle,JSON.stringify(error)).subscribe();\r\n \r\n if (error.status === 401) {\r\n if(!this.authenticationService.currentUserValue.remember || error.url.includes(this.refreshtokenUrl)){\r\n this.authenticationService.logout();\r\n return;\r\n }\r\n return throwError(error);\r\n }\r\n\r\n let displayError = error.error?.message ??'An unexpected error occurred, try reloading the page. If the problem persists, please contact support.';\r\n\r\n if (error.status === 403) {\r\n displayError = 'You are not authorized to access this resource';\r\n } else if (error.status === 404) {\r\n displayError = 'The resource you are looking for is not found';\r\n }\r\n\r\n console.log(error);\r\n this.snackbarService.showErrorSnackBar(displayError,this.errorSnackBarDuration);\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpHeaders,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable, throwError } from 'rxjs';\r\n\r\nimport { catchError, filter, switchMap, take } from 'rxjs/operators';\r\nimport { User } from '../models/user';\r\nimport { AuthenticationService } from '../services/security/authentication.service';\r\n\r\n@Injectable()\r\nexport class JwtInterceptor implements HttpInterceptor {\r\n private isRefreshing = false; // Flag to prevent multiple refreshes at the same time\r\n private refreshTokenSubject: BehaviorSubject =\r\n new BehaviorSubject(null);\r\n\r\n constructor(\r\n private authenticationService: AuthenticationService\r\n ) {}\r\n\r\n intercept(\r\n request: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n // add authorization header with jwt token if available\r\n const currentUser = this.authenticationService.currentUserValue;\r\n\r\n if (currentUser) {\r\n request = this.addRequiredHeadersToRequest(request);\r\n }\r\n\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 401 && currentUser.remember) {\r\n return this.handle401Error(request, next, currentUser);\r\n }\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n // Attach the token to the request\r\n private addRequiredHeadersToRequest(\r\n req: HttpRequest\r\n ): HttpRequest {\r\n return req.clone({\r\n withCredentials: true,\r\n headers: new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n })\r\n });\r\n }\r\n // Handle 401 errors and refresh the token if necessary\r\n private handle401Error(\r\n req: HttpRequest,\r\n next: HttpHandler,\r\n user: User\r\n ): Observable> {\r\n if (!this.isRefreshing) {\r\n this.isRefreshing = true;\r\n this.refreshTokenSubject.next(null);\r\n\r\n return this.authenticationService.refreshToken().pipe(\r\n switchMap((newToken: any) => {\r\n this.isRefreshing = false;\r\n this.refreshTokenSubject.next(newToken);\r\n\r\n return next.handle(\r\n this.addRequiredHeadersToRequest(req)\r\n );\r\n }),\r\n catchError((error) => {\r\n this.isRefreshing = false;\r\n return throwError(error);\r\n })\r\n );\r\n } else {\r\n return this.refreshTokenSubject.pipe(\r\n filter((token: any) => token != null),\r\n take(1),\r\n switchMap((token) => {\r\n return next.handle(this.addRequiredHeadersToRequest(req))\r\n })\r\n );\r\n }\r\n }\r\n}\r\n","import { Component, Input, OnInit, HostListener, Renderer2 } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport * as moment from 'moment';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Observable, Subscription } from 'rxjs';\r\nimport { JetNetInformationComponent } from '../../shared/components/jetnet-information/jetnet-information.component';\r\n\r\nimport * as SharedEvents from '../../constants/sharedEvents';\r\n// Services\r\nimport { FboairportsService } from '../../services/fboairports.service';\r\nimport { FbopricesService } from '../../services/fboprices.service';\r\nimport { FbopreferencesService } from '../../services/fbopreferences.service';\r\nimport { PricingtemplatesService } from '../../services/pricingtemplates.service';\r\nimport { FbosService } from '../../services/fbos.service';\r\n// Components\r\nimport { PricingExpiredNotificationComponent } from '../../shared/components/pricing-expired-notification/pricing-expired-notification.component';\r\nimport { customerGridClear } from '../../store/actions';\r\nimport { State } from '../../store/reducers';\r\nimport { SharedService } from '../shared-service';\r\nimport { ProceedConfirmationComponent } from '../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\nimport { AgreementsAndDocumentsModalComponent } from 'src/app/shared/components/Agreements-and-documents-modal/Agreements-and-documents-modal.component';\r\nimport { DocumentService } from 'src/app/services/documents.service';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'default-layout',\r\n styleUrls: ['../layouts.scss'],\r\n templateUrl: 'default.component.html',\r\n})\r\nexport class DefaultLayoutComponent implements OnInit {\r\n @Input() openedSidebar: boolean;\r\n\r\n pageTitle: any;\r\n boxed: boolean;\r\n compress: boolean;\r\n menuStyle: string;\r\n layoutClasses: any;\r\n pricingTemplatesData: any[];\r\n retailSaf: number;\r\n costSaf: number;\r\n retailJetA: number;\r\n costJetA: number;\r\n effectiveToSaf: any;\r\n effectiveToJetA: any;\r\n timezone: string = \"\";\r\n enableJetA: boolean;\r\n enableSaf: boolean;\r\n\r\n hidePricesPanel: boolean;\r\n subscriptions: Subscription[] = [];\r\n\r\n public getScreenWidth: any;\r\n public getScreenHeight: any;\r\n\r\n isExpiredPricingDialogBlocked: boolean = true;\r\n\r\n valueChangedSubscription: Subscription;\r\n changeEmittedSubscription: Subscription;\r\n routerSubscription: Subscription;\r\n\r\n constructor(\r\n private fboairportsService: FboairportsService,\r\n private sharedService: SharedService,\r\n private fboPricesService: FbopricesService,\r\n private fboPreferencesService: FbopreferencesService,\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private expiredPricingDialog: MatDialog,\r\n private router: Router,\r\n private store: Store,\r\n private templateDialog: MatDialog,\r\n private fbosService: FbosService,\r\n private documentService: DocumentService,\r\n private renderer: Renderer2,\r\n private jetNetInformationDialog: MatDialog,\r\n ) {\r\n this.openedSidebar = false;\r\n this.boxed = false;\r\n this.compress = false;\r\n this.menuStyle = 'style-3';\r\n\r\n this.routerSubscription = this.router.events\r\n .pipe(filter((event) => event instanceof NavigationStart))\r\n .subscribe((event: RouterEvent) => {\r\n if (!event.url.startsWith('/default-layout/customers')) {\r\n this.store.dispatch(customerGridClear());\r\n }\r\n if (!event.url.startsWith('/default-layout/analytics')) {\r\n this.renderer.removeClass(document.body, 'no-scroll');\r\n }\r\n });\r\n }\r\n\r\n get isCsr() {\r\n return this.sharedService.isCsr;\r\n }\r\n get isConductor() {\r\n return this.sharedService.currentUser.role === 3;\r\n }\r\n get isNotGroupAdmin() {\r\n return this.sharedService.currentUser.role !== 2 || (this.sharedService.currentUser.role == 2 && this.sharedService.currentUser.fboId > 0);\r\n }\r\n get isJetNetIntegrationEnabled() {\r\n return this.sharedService.currentUser.isJetNetIntegrationEnabled;\r\n }\r\n\r\n async ngOnInit() {\r\n if(this.isConductor) {\r\n this.isExpiredPricingDialogBlocked = false;\r\n }\r\n else{\r\n await this.openAgreementsAndDocumentsModal();\r\n }\r\n\r\n if (!this.isExpiredPricingDialogBlocked){\r\n this.triggerPrices();\r\n }\r\n\r\n this.valueChangedSubscription = this.sharedService.valueChanged$.subscribe((value: any) => {\r\n if (!this.canUserSeePricing()) {\r\n return;\r\n }\r\n if (value.message === SharedEvents.fboPricesUpdatedEvent) {\r\n this.costJetA = value.JetACost;\r\n this.retailJetA = value.JetARetail;\r\n this.costSaf = value.SafCost;\r\n this.retailSaf = value.SafRetail;\r\n this.effectiveToSaf = value.PriceExpirationSaf;\r\n this.effectiveToJetA = value.PriceExpirationJetA;\r\n }\r\n\r\n if (value.message === SharedEvents.fboProductPreferenceChangeEvent) {\r\n this.enableJetA = value.EnableJetA;\r\n this.enableSaf = value.EnableSaf;\r\n }\r\n });\r\n\r\n this.layoutClasses = this.getClasses();\r\n\r\n this.LogUserForAnalytics();\r\n\r\n this.getScreenWidth = window.innerWidth;\r\n this.getScreenHeight = window.innerHeight;\r\n\r\n if (!this.isSidebarInvisible() && this.getScreenWidth >= 768) this.sidebarState();\r\n }\r\n ngOnDestroy() {\r\n this.routerSubscription?.unsubscribe();\r\n this.valueChangedSubscription?.unsubscribe();\r\n this.changeEmittedSubscription?.unsubscribe();\r\n this.subscriptions.forEach((subscription) => subscription.unsubscribe());\r\n }\r\n private triggerPrices(){\r\n var isConductorRefresh = true;\r\n this.changeEmittedSubscription = this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (!this.canUserSeePricing()) {\r\n return;\r\n }\r\n if (\r\n (message === SharedEvents.fboChangedEvent ||\r\n message === SharedEvents.locationChangedEvent) &&\r\n this.sharedService.currentUser.fboId\r\n ) {\r\n isConductorRefresh = false;\r\n this.pricingTemplatesService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.pricingTemplatesData = data;\r\n if (this.canUserSeePricing()) {\r\n this.loadPrices();\r\n }\r\n }\r\n );\r\n }\r\n });\r\n\r\n if (this.canUserSeePricing() || isConductorRefresh) {\r\n this.pricingTemplatesService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.pricingTemplatesData = data;\r\n this.loadPrices();\r\n }\r\n );\r\n }\r\n }\r\n @HostListener('window:resize', ['$event'])\r\n onWindowResize() {\r\n this.getScreenWidth = window.innerWidth;\r\n this.getScreenHeight = window.innerHeight;\r\n }\r\n async openAgreementsAndDocumentsModal(){\r\n let data = await this.documentService\r\n .getDocumentsToAccept(\r\n this.sharedService.currentUser.oid,\r\n this.sharedService.currentUser.groupId\r\n ).toPromise();\r\n if(!data.hasPendingDocumentsToAccept){\r\n this.isExpiredPricingDialogBlocked = false;\r\n return;\r\n }\r\n\r\n const config: MatDialogConfig = {\r\n disableClose: true,\r\n data: {\r\n userId: data.userId,\r\n eulaDocument: data.documentToAccept\r\n }\r\n };\r\n const dialogRef = this.templateDialog.open(\r\n AgreementsAndDocumentsModalComponent,\r\n config\r\n );\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n if(result)\r\n this.triggerPrices();\r\n });\r\n }\r\n isPricePanelVisible() {\r\n const whitelist = [\r\n '/default-layout/dashboard',\r\n '/default-layout/dashboard-fbo',\r\n '/default-layout/dashboard-fbo-updated'\r\n ];\r\n //if(this.isCsr) return false;\r\n\r\n if (\r\n whitelist.findIndex((v) =>\r\n window.location.pathname.startsWith(v)\r\n ) >= 0\r\n ) {\r\n return true;\r\n }\r\n }\r\n isAdditionNavBarVisible() {\r\n const blacklist = [\r\n '/default-layout/about-fbolinx'\r\n ];\r\n if (\r\n blacklist.findIndex((v) =>\r\n window.location.pathname.startsWith(v)\r\n ) >= 0\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n getClasses() {\r\n const menu: string = this.menuStyle;\r\n\r\n return {\r\n ['menu-' + menu]: menu,\r\n boxed: this.boxed,\r\n 'compress-vertical-navbar': this.compress,\r\n 'open-sidebar': this.openedSidebar,\r\n rtl: false,\r\n };\r\n }\r\n\r\n sidebarState() {\r\n this.openedSidebar = !this.openedSidebar;\r\n }\r\n\r\n checkCurrentPrices() {\r\n if(this.isCsr) return;\r\n\r\n const currentRoute = this.router.url;\r\n\r\n if(this.sharedService.currentUser.accountType == AccountType.Freemium) return;\r\n\r\n if (currentRoute == '/default-layout/groups') return;\r\n\r\n if (!this.sharedService.currentUser.fboId) return;\r\n\r\n const remindMeLaterFlag = localStorage.getItem(\r\n 'pricingExpiredNotification'\r\n );\r\n const noThanksFlag = sessionStorage.getItem(\r\n 'pricingExpiredNotification'\r\n );\r\n if (noThanksFlag) {\r\n return;\r\n }\r\n\r\n if (\r\n remindMeLaterFlag &&\r\n moment(new Date(moment().format('L'))) <=\r\n moment(new Date(remindMeLaterFlag))\r\n ) return;\r\n\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboPricesService\r\n .checkFboExpiredPricing(this.sharedService.currentUser.fboId)\r\n .subscribe((data: any) => {\r\n if (this.sharedService.currentUser.role != 6 && this.sharedService.currentUser.fboId > 0 && !data) {\r\n const dialogRef = this.expiredPricingDialog.open(\r\n PricingExpiredNotificationComponent,\r\n {\r\n autoFocus: false,\r\n data: {},\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n ))\r\n });\r\n }\r\n isSidebarInvisible() {\r\n return (\r\n !this.sharedService.currentUser.role &&\r\n !this.sharedService.currentUser.impersonatedRole\r\n );\r\n }\r\n\r\n public onClearFboPrice(event): void {\r\n const dialogRef = this.templateDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Yes',\r\n description:\r\n \"This will unpublish all associated pricing for this product\",\r\n title: 'Are you sure you want to clear your pricing?',\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.fboPricesService.removePricing(this.sharedService.currentUser.fboId, event)\r\n .subscribe((data: any) => {\r\n if (event === 'SAF') {\r\n this.costSaf = 0;\r\n this.retailSaf = 0;\r\n }\r\n else if (event === 'JetA') {\r\n this.costJetA = 0;\r\n this.retailJetA = 0;\r\n }\r\n\r\n this.sharedService.emitChange('fbo prices cleared');\r\n this.sharedService.valueChange({\r\n message: SharedEvents.fboPricesClearedEvent,\r\n });\r\n });\r\n });\r\n }\r\n\r\n tailNumberSearchChanged(tailNumber: any) {\r\n if (tailNumber.currentTarget.value.trim() != \"\") {\r\n const dialogRef = this.jetNetInformationDialog.open(JetNetInformationComponent, {\r\n width: '1100px',\r\n data: tailNumber.currentTarget.value.trim()\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .subscribe((result: any) => {\r\n\r\n });\r\n }\r\n }\r\n\r\n private loadFboPreferences() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboPreferencesService.getForFbo(this.sharedService.currentUser.fboId).subscribe((preferences: any) => {\r\n preferences.decimalPrecision = preferences.decimalPrecision ?? 4;\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.decimalPrecision, preferences.decimalPrecision);\r\n if (preferences.enableJetA)\r\n this.enableJetA = true;\r\n if (preferences.enableSaf)\r\n this.enableSaf = true;\r\n\r\n observer.next();\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n ));\r\n });\r\n }\r\n\r\n private loadFboPrices() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboairportsService.getLocalTimeZone(this.sharedService.currentUser.fboId).subscribe((timezone: any) => {\r\n this.timezone = timezone;\r\n\r\n var _this = this;\r\n this.fboPricesService\r\n .getFbopricesByFboIdCurrent(this.sharedService.currentUser.fboId)\r\n .subscribe((data: any) => {\r\n for (const price of data) {\r\n if (price.product === 'SAF Cost') {\r\n _this.costSaf = price.price;\r\n }\r\n if (price.product === 'SAF Retail') {\r\n _this.retailSaf = price.price;\r\n if (moment(price.effectiveTo).format(\"M/D/YY\") == \"12/31/99\" || price.source == \"1\")\r\n _this.effectiveToSaf = \"Updated via \" + (price.integrationPartner == \"\" ? \"PoS\" : price.integrationPartner) + \" Integration\";\r\n else\r\n _this.effectiveToSaf = \"Expires \" + moment(price.effectiveTo).format(\"M/D/YY @ HH:mm\") + \" \" + this.timezone;\r\n }\r\n if (price.product === 'JetA Cost') {\r\n _this.costJetA = price.price;\r\n }\r\n if (price.product === 'JetA Retail') {\r\n _this.retailJetA = price.price;\r\n if (moment(price.effectiveTo).format(\"M/D/YY\") == \"12/31/99\" || price.source == \"1\")\r\n _this.effectiveToJetA = \"Updated via \" + (price.integrationPartner == \"\" ? \"PoS\" : price.integrationPartner) + \" Integration\";\r\n else\r\n _this.effectiveToJetA = \"Expires \" + moment(price.effectiveTo).format(\"M/D/YY @ HH:mm\") + \" \" + this.timezone;\r\n }\r\n }\r\n\r\n observer.next();\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n )\r\n }))\r\n });\r\n }\r\n\r\n private loadPrices() {\r\n this.subscriptions.push(\r\n this.loadFboPreferences().subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadFboPrices().subscribe(() => {\r\n var checkPricesResult = this.checkCurrentPrices();\r\n if (!checkPricesResult)\r\n return;\r\n this.subscriptions.push(\r\n this.checkCurrentPrices().subscribe(() => {\r\n }))\r\n }))\r\n })\r\n );\r\n }\r\n\r\n private canUserSeePricing(): boolean {\r\n return this.sharedService.currentUser == null ? false : (\r\n [1, 4].includes(this.sharedService.currentUser.role) ||\r\n [1, 4].includes(this.sharedService.currentUser.impersonatedRole)\r\n );\r\n }\r\n\r\n private LogUserForAnalytics() {\r\n //Log data about the user for Lucky Orange analytics\r\n if (!this.sharedService.currentUser || !this.sharedService.currentUser.username || this.sharedService.currentUser.username == '')\r\n return;\r\n\r\n if (this.sharedService.currentUser.fboId > 0) {\r\n this.fbosService\r\n .getByFboId(\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.accountType, data.accountType);\r\n this.sharedService.emitChange(SharedEvents.accountTypeChangedEvent);\r\n\r\n var fbo = data;\r\n this.fboairportsService\r\n .getForFbo(\r\n fbo\r\n )\r\n .subscribe(\r\n (result: any) => {\r\n this.LogAnalytics(fbo.fbo, result.icao);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n else\r\n this.LogAnalytics(\"\", \"\");\r\n }\r\n\r\n private LogAnalytics(fbo, icao) {\r\n var userData = {\r\n \"Name\": (!this.sharedService.currentUser.firstName ? '' : this.sharedService.currentUser.firstName) + ' ' + (!this.sharedService.currentUser.lastName ? '' : this.sharedService.currentUser.lastName),\r\n \"UserName\": this.sharedService.currentUser.username,\r\n \"FBO\": fbo,\r\n \"ICAO\": icao\r\n };\r\n\r\n window._loq = window._loq || []\r\n window._loq.push(['custom', userData]);\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \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, HostListener } from '@angular/core';\r\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\nimport { UserService } from '../../services/user.service';\r\n// Components\r\nimport { ForgotPasswordDialogComponent } from '../../shared/components/forgot-password/forgot-password-dialog/forgot-password-dialog.component';\r\nimport { LoginModalComponent } from '../../shared/components/login-modal/login-modal.component';\r\n// Services\r\nimport { SharedService } from '../shared-service';\r\nimport { urls } from 'src/app/constants/externalUrlsConstants';\r\n\r\nexport interface ContactUsMessage {\r\n name: string;\r\n email: string;\r\n phoneNumber: string;\r\n message: string;\r\n}\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'landing-site-layout',\r\n styleUrls: ['./landing-site.component.scss'],\r\n templateUrl: './landing-site.component.html',\r\n})\r\nexport class LandingSiteLayoutComponent {\r\n // Images\r\n slideHalfImage1URL = '../../../assets/content/slide-half-1.png';\r\n slideHalfImage2URL = '../../../assets/content/slide-half-2.png';\r\n slideHalfImage3URL = '../../../assets/content/slide-half-3.png';\r\n featureLayoutImage = '../../../assets/content/feature-layout.png';\r\n featureHtml5Image = '../../../assets/content/feature-html5.png';\r\n featureWebfontImage = '../../../assets/content/feature-webfonts.png';\r\n featureDesignImage = '../../../assets/content/feature-design.png';\r\n featureCustomizeImage = '../../../assets/content/feature-customize.png';\r\n featureSupportImage = '../../../assets/content/feature-support.png';\r\n paragonSmallLogoImage = '../../../assets/content/paragon-2c-logo_small.png';\r\n fuelerlinxLogo = '../../../assets/img/FuelerLinxLogo.png';\r\n x1fboLogo = '../../../assets/img/X1.png';\r\n flightAwareLogo = '../../../assets/img/FlightAware.png';\r\n titanLogo = '../../../assets/img/titan.png';\r\n amstatLogo = '../../../assets/img/Amstat.png';\r\n fbodirectorLogo = '../../../assets/img/fbodirector.png';\r\n fbopartnersLogo = '../../../assets/img/fbopartners.png';\r\n planeFrontImage = '../../../assets/img/landing-page/DSC03168.jpg';\r\n\r\n carouselImages: Array = [\r\n this.slideHalfImage1URL,\r\n this.slideHalfImage2URL,\r\n this.slideHalfImage3URL,\r\n ];\r\n\r\n integrationPartners: Array = [\r\n [this.fuelerlinxLogo, this.x1fboLogo],\r\n [this.flightAwareLogo, this.titanLogo],\r\n [this.amstatLogo, this.fbodirectorLogo, this.fbopartnersLogo],\r\n ];\r\n\r\n integrationPartnerView = 0;\r\n contactUsMessage: ContactUsMessage;\r\n isLoggingIn = false;\r\n error = '';\r\n isSticky = false;\r\n\r\n constructor(\r\n private snackBar: MatSnackBar,\r\n private forgotPasswordDialog: MatDialog,\r\n private userService: UserService,\r\n private loginDialog: MatDialog,\r\n ) {}\r\n\r\n @HostListener('window:scroll', ['$event'])\r\n checkScroll(): void {\r\n this.isSticky = window.pageYOffset >= 171;\r\n }\r\n\r\n onLogin() {\r\n const data = {};\r\n const dialogRef = this.loginDialog.open(LoginModalComponent, {\r\n data,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n if (result.mode === 'request-demo') {\r\n this.openRequestDemo();\r\n }\r\n if (result.mode === 'forgot-password') {\r\n this.forgotPassword();\r\n }\r\n });\r\n }\r\n\r\n openRequestDemo() {\r\n window.open(urls.demoRequestUrl, '_blank').focus();\r\n //const data = {\r\n // succeed: false,\r\n //};\r\n //const dialogRef = this.requestDemoDialog.open(\r\n // RequestDemoModalComponent,\r\n // {\r\n // data,\r\n // height: '650px',\r\n // panelClass: 'request-demo-container',\r\n // width: '600px',\r\n // }\r\n //);\r\n\r\n //dialogRef.afterClosed().subscribe((result) => {\r\n // if (!result) {\r\n // return;\r\n // }\r\n\r\n // this.requestDemoSuccessDialog.open(RequestDemoSuccessComponent);\r\n //});\r\n }\r\n\r\n forgotPassword() {\r\n const data = {\r\n email: '',\r\n };\r\n const dialogRef = this.forgotPasswordDialog.open(\r\n ForgotPasswordDialogComponent,\r\n {\r\n data,\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.userService.requestResetPassword(result).subscribe(\r\n () => {\r\n this.snackBar.open(\r\n 'An email has been sent with access instructions',\r\n '',\r\n {\r\n duration: 5000,\r\n }\r\n );\r\n },\r\n (error) => {\r\n this.error = error;\r\n // Simple message.\r\n this.snackBar.open(this.error, '', {\r\n duration: 5000,\r\n });\r\n }\r\n );\r\n });\r\n }\r\n\r\n changeIntegrationPartnerView(event: MatButtonToggleChange) {\r\n switch (Number(event.value)) {\r\n case 0:\r\n this.integrationPartners = [\r\n [this.fuelerlinxLogo, this.x1fboLogo],\r\n [this.flightAwareLogo, this.titanLogo],\r\n [\r\n this.amstatLogo,\r\n this.fbodirectorLogo,\r\n this.fbopartnersLogo,\r\n ],\r\n ];\r\n break;\r\n case 1:\r\n this.integrationPartners = [\r\n [\r\n this.fuelerlinxLogo,\r\n this.flightAwareLogo,\r\n this.amstatLogo,\r\n ],\r\n [this.fbopartnersLogo],\r\n ];\r\n break;\r\n case 2:\r\n this.integrationPartners = [\r\n [\r\n this.fbopartnersLogo,\r\n this.titanLogo,\r\n this.fbodirectorLogo,\r\n ],\r\n ];\r\n break;\r\n case 3:\r\n this.integrationPartners = [\r\n [this.titanLogo],\r\n ];\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Sign In\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Precision Marketing\r\n
\r\n
\r\n
\r\n
\r\n Platform for FBOs\r\n
\r\n
\r\n
\r\n

\r\n A direct pricing solution designed to integrate\r\n into FuelerLinx: the world's largest business\r\n aviation fuel marketplace and tankering software\r\n system. FBOs can automatically push direct\r\n quotes, receive fuel orders, and accept payments\r\n from one intuitive interface.\r\n

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

\r\n FBOLinx includes integrated CRM functionality to\r\n help you manage leads, contacts and confidential\r\n pricing. The essential platform for FBOs that\r\n want to understand their customers, grow\r\n relationships, and increase efficiency.\r\n

\r\n
\r\n
\r\n \r\n Request Demo\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n Real-Time Fuel Quoting\r\n
\r\n Automated, Customizable, & Secure\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
    \r\n
  • \r\n \r\n Direct and Confidential\r\n Pricing to over 3,000\r\n aircraft\r\n FBOLinx instantly provides a\r\n direct pipeline from your\r\n FBO to flight departments;\r\n ensuring accurate,\r\n confidential pricing\r\n tailored to your customer. A\r\n simple interface ensures\r\n your FBO maximizes exposure\r\n through the FuelerLinx\r\n marketplace.\r\n \r\n
  • \r\n
  • \r\n \r\n Build Customer\r\n Relationships\r\n FBOLinx gives you the\r\n ability to reach more flight\r\n departments within a vast\r\n and transient market.\r\n Nurture and grow your\r\n customer base with tailored\r\n pricing and instant access.\r\n \r\n
  • \r\n
  • \r\n \r\n Your Direct Pricing in\r\n the FuelerLinx\r\n Marketplace\r\n FuelerLinx software is used\r\n by over 800 flight\r\n departments to make more\r\n informed fuel purchasing\r\n decisions. It’s secure,\r\n confidential and effective.\r\n FBOLinx users can push\r\n tailored, confidential\r\n pricing to each flight\r\n department in the FuelerLinx\r\n network in seconds.\r\n \r\n
  • \r\n
\r\n
\r\n \r\n Request Demo\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Connect directly into the FuelerLinx\r\n Marketplace\r\n \r\n
\r\n
\r\n

\r\n FuelerLinx is an aviation fuel\r\n planning and tankering software\r\n system flight departments use to\r\n compare all fuel price options on a\r\n field, find tech stops, and purchase\r\n fuel. 
\r\n

\r\n\r\n

\r\n Over the past decade, FuelerLinx\r\n has built the premier fuel software\r\n for the business aviation\r\n industry.  FuelerLinx spans\r\n nearly all software systems, brings\r\n together critical data, and boasts a\r\n customer base featuring the largest\r\n fuel buyers in the industry.\r\n

\r\n\r\n

\r\n Additional features such as\r\n multi-leg tankering calculations,\r\n proximity fuel maps, and fuel\r\n transaction auditing make FuelerLinx\r\n a one-stop shop for anyone who wants\r\n to streamline their fuel purchasing\r\n and maximize operational\r\n efficiency.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Integrations
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n All\r\n Market Intelligence\r\n Point of Sale\r\n FBO Chains\r\n \r\n
\r\n
\r\n
\r\n \r\n
\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 Us
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

7415 Hayvenhurst Place

\r\n

\r\n Van Nuys, CA 91406 
Phone:\r\n (866) 998-5469\r\n

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

\r\n Phone :\r\n +1 (866) 998-5469\r\n

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

Email : info@fbolinx.com

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n FBOLinx: Precision Marketing Platform for FBOs\r\n
\r\n
\r\n\r\n
\r\n \r\n Request Demo\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n\r\n","import { Component } from '@angular/core';\r\n@Component({\r\n selector: 'outside-the-gate',\r\n styleUrls: ['./outside-the-gate.component.scss'],\r\n templateUrl: './outside-the-gate.component.html',\r\n})\r\nexport class OutsideTheGateLayoutComponent {}\r\n","
\r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { SharedService } from '../shared-service';\r\n\r\n@Component({\r\n selector: 'app-public-view',\r\n templateUrl: './public-view.component.html',\r\n styleUrls: ['./public-view.component.scss']\r\n})\r\nexport class PublicViewComponent implements OnInit {\r\n layoutClasses: any;\r\n menuStyle: string;\r\n boxed: boolean;\r\n compress: boolean;\r\n pageTitle: string = \"Lobby View\";\r\n openedSidebar = false;\r\n isPublicView = true;\r\n\r\n\r\n constructor(private sharedService: SharedService) {\r\n this.boxed = false;\r\n this.compress = false;\r\n this.menuStyle = 'style-3';\r\n }\r\n\r\n ngOnInit() {\r\n this.layoutClasses = this.getClasses();\r\n }\r\n getClasses() {\r\n const menu: string = this.menuStyle;\r\n\r\n return {\r\n ['menu-' + menu]: menu,\r\n boxed: this.boxed,\r\n 'compress-vertical-navbar': this.compress,\r\n 'open-sidebar': this.openedSidebar,\r\n rtl: false,\r\n };\r\n }\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 * as moment from 'moment';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\n\r\nimport { User } from '../models/user';\r\nimport { AuthenticationService } from '../services/security/authentication.service';\r\nimport { localStorageAccessConstant } from '../constants/LocalStorageAccessConstant';\r\nimport { UserRole } from '../enums/user-role';\r\n\r\nexport interface ActiveUser {\r\n fboId: number;\r\n groupId: number;\r\n icao: string;\r\n}\r\n\r\nexport class DashboardSettings {\r\n filterStartDate: Date;\r\n filterEndDate: Date;\r\n}\r\n\r\n@Injectable()\r\nexport class SharedService {\r\n dashboardSettings: DashboardSettings = new DashboardSettings();\r\n\r\n priceTemplateMessageSource = new BehaviorSubject('Update Pricing Template');\r\n currentMessage = this.priceTemplateMessageSource.asObservable();\r\n\r\n priceUpdateMessage = new BehaviorSubject('Enable button');\r\n priceMessage = this.priceUpdateMessage.asObservable();\r\n\r\n //for Log History\r\n updatedHistory = new BehaviorSubject(false);\r\n\r\n // Observable string sources\r\n emitChangeSource = new Subject();\r\n valueChangeSource = new Subject();\r\n\r\n // Observable string streams\r\n changeEmitted$ = this.emitChangeSource.asObservable();\r\n valueChanged$ = this.valueChangeSource.asObservable();\r\n\r\n constructor(private authenticationService: AuthenticationService) {\r\n this.authenticationService.currentUser.subscribe(\r\n (x) => (this.currentUser = x)\r\n );\r\n const storedDashboardSettings =\r\n localStorage.getItem('dashboardSetings');\r\n if (!storedDashboardSettings) {\r\n this.dashboardSettings.filterStartDate = new Date(\r\n moment().add(-6, 'M').format('MM/DD/YYYY')\r\n );\r\n this.dashboardSettings.filterEndDate = new Date(\r\n moment().format('MM/DD/YYYY')\r\n );\r\n } else {\r\n this.dashboardSettings = JSON.parse(storedDashboardSettings);\r\n }\r\n }\r\n\r\n // Private members\r\n private _currentUser: User;\r\n private _title: string;\r\n get title(): string {\r\n return this._title;\r\n }\r\n set title(title: string) {\r\n this._title = title;\r\n }\r\n // Public Members\r\n get currentUser(): User {\r\n // const error = new Error();\r\n // const stackTrace = error.stack;\r\n // if(stackTrace.includes('currentUser')) return;\r\n\r\n\r\n // console.log(\"🚀 ~ file: shared-service.ts:72 ~ SharedService ~ getcurrentUser ~ this._currentUser == null:\", this._currentUser)\r\n\r\n // for (const key in localStorageAccessConstant) {\r\n // if (!this._currentUser[key] && localStorage.getItem(key)) {\r\n // this._currentUser[key] = (this._currentUser[key] instanceof Number) ? Number(localStorage.getItem(localStorageAccessConstant.fboId)) : localStorage.getItem(localStorageAccessConstant.fboId);\r\n // }\r\n // }\r\n\r\n if (this._currentUser == null) return;\r\n\r\n if (!this._currentUser.accountType && localStorage.getItem(localStorageAccessConstant.accountType)) {\r\n this._currentUser.accountType = Number(localStorage.getItem(localStorageAccessConstant.accountType));\r\n }\r\n if (!this._currentUser.icao && localStorage.getItem(localStorageAccessConstant.icao)) {\r\n this._currentUser.icao = localStorage.getItem(localStorageAccessConstant.icao);\r\n }\r\n if (!this._currentUser.fboId && localStorage.getItem(localStorageAccessConstant.fboId)) {\r\n this._currentUser.fboId = Number(localStorage.getItem(localStorageAccessConstant.fboId));\r\n }\r\n if (\r\n !this._currentUser.managerGroupId &&\r\n localStorage.getItem(localStorageAccessConstant.managerGroupId)\r\n ) {\r\n this._currentUser.managerGroupId = Number(\r\n localStorage.getItem(localStorageAccessConstant.managerGroupId)\r\n );\r\n }\r\n if (\r\n !this._currentUser.impersonatedRole &&\r\n localStorage.getItem(localStorageAccessConstant.impersonatedrole)\r\n ) {\r\n this._currentUser.impersonatedRole = Number(\r\n localStorage.getItem(localStorageAccessConstant.impersonatedrole)\r\n );\r\n }\r\n const sessionGroupId = localStorage.getItem(localStorageAccessConstant.groupId);\r\n if (\r\n sessionGroupId &&\r\n (!this._currentUser.groupId ||\r\n this._currentUser.groupId !== Number(sessionGroupId))\r\n ) {\r\n this._currentUser.groupId = Number(sessionGroupId);\r\n }\r\n if (!this._currentUser.groupId && localStorage.getItem(localStorageAccessConstant.groupId)) {\r\n this._currentUser.groupId = Number(localStorage.getItem(localStorageAccessConstant.groupId));\r\n }\r\n if (\r\n !this._currentUser.conductorFbo &&\r\n localStorage.getItem(localStorageAccessConstant.conductorFbo)\r\n ) {\r\n this._currentUser.conductorFbo = Boolean(\r\n localStorage.getItem(localStorageAccessConstant.conductorFbo)\r\n );\r\n }\r\n return this._currentUser;\r\n }\r\n get isCsr() {\r\n return this.currentUser.role === UserRole.CSR;\r\n }\r\n set currentUser(user: User) {\r\n this._currentUser = user;\r\n }\r\n\r\n NotifyPricingTemplateComponent(message: string) {\r\n this.priceTemplateMessageSource.next(message);\r\n }\r\n\r\n // Service message commands\r\n emitChange(change: string) {\r\n this.emitChangeSource.next(change);\r\n }\r\n\r\n valueChange(change: any) {\r\n this.valueChangeSource.next(change);\r\n }\r\n\r\n isManagingGroup(): boolean {\r\n return (this.currentUser.groupId > 0 &&\r\n this.currentUser.managerGroupId > 0 &&\r\n this.currentUser.groupId != this.currentUser.managerGroupId);\r\n }\r\n setCurrentUserPropertyValue(property: string, value: any): void{\r\n this.currentUser[property] = value;\r\n localStorage.setItem(localStorageAccessConstant[property],value?.toString());\r\n }\r\n resetCurrentUserPropertyValue(property: string, resetvalue: any = null): void{\r\n this.currentUser[property] = resetvalue;\r\n localStorage.removeItem(property);\r\n }\r\n getCurrentUserPropertyValue(property: string): string{\r\n return (this.currentUser[property]) ? this.currentUser[property] : localStorage.getItem(property);\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-namespace */\r\n\r\nimport { ApplicableTaxFlights } from '../enums/applicable-tax-flights';\r\nimport { FeeCalculationApplyingTypes } from '../enums/fee-calculation-applying-types';\r\nimport { FeeCalculationTypes } from '../enums/fee-calculation-types';\r\nimport { FlightTypeClassifications } from '../enums/flight-type-classifications';\r\nimport { ServiceOrderAppliedDateTypes } from '../enums/service-order-applied-date-types';\r\nimport { StringFilterConditions } from '../enums/string-filter-conditions';\r\n\r\nexport namespace EnumOptions {\r\n export class EnumOption {\r\n public text: string;\r\n public value: any;\r\n }\r\n\r\n export const applicableTaxFlightOptions: Array = [\r\n { text: 'Never', value: ApplicableTaxFlights.Never },\r\n { text: 'Domestic Only', value: ApplicableTaxFlights.DomesticOnly },\r\n {\r\n text: 'International Only',\r\n value: ApplicableTaxFlights.InternationalOnly,\r\n },\r\n { text: 'All Flights', value: ApplicableTaxFlights.All },\r\n ];\r\n\r\n export const strictApplicableTaxFlightOptions: Array = [\r\n { text: 'Domestic', value: ApplicableTaxFlights.DomesticOnly },\r\n {\r\n text: 'International',\r\n value: ApplicableTaxFlights.InternationalOnly,\r\n },\r\n ];\r\n\r\n export const flightTypeClassificationOptions: Array = [\r\n { text: 'Private', value: FlightTypeClassifications.Private },\r\n { text: 'Commercial', value: FlightTypeClassifications.Commercial },\r\n { text: 'All Types', value: FlightTypeClassifications.All },\r\n ];\r\n\r\n export const strictFlightTypeClassificationOptions: Array = [\r\n { text: 'Private', value: FlightTypeClassifications.Private },\r\n { text: 'Commercial', value: FlightTypeClassifications.Commercial },\r\n ];\r\n\r\n export const feeCalculationTypeOptions: Array = [\r\n { text: 'Flat Per Gallon', value: FeeCalculationTypes.FlatPerGallon },\r\n { text: 'Percentage', value: FeeCalculationTypes.Percentage },\r\n ];\r\n\r\n export const feeCalculationApplyingTypeOptions: Array = [\r\n {\r\n text: 'Above the Line',\r\n value: FeeCalculationApplyingTypes.PreMargin,\r\n },\r\n {\r\n text: 'Below the Line',\r\n value: FeeCalculationApplyingTypes.PostMargin,\r\n },\r\n ];\r\n\r\n export const stringFilterConditionOptions: Array = [\r\n {\r\n text: 'Contains',\r\n value: StringFilterConditions.Contains,\r\n },\r\n {\r\n text: 'Does Not Contain',\r\n value: StringFilterConditions.DoesNotContain,\r\n }\r\n ];\r\n\r\n export const serviceOrderAppliedDateTypeOptions: Array = [\r\n { text: 'Arrival', value: ServiceOrderAppliedDateTypes.Arrival },\r\n { text: 'Departure', value: ServiceOrderAppliedDateTypes.Departure }\r\n ]\r\n}\r\n","export interface AppLog {\r\n title: string;\r\n data: string;\r\n logColorCode: LogColorCode;\r\n logLevel: LogLevel;\r\n}\r\nexport enum LogColorCode\r\n{\r\n Red,\r\n Green,\r\n Blue,\r\n Yellow,\r\n Orange,\r\n Violet\r\n}\r\nexport enum LogLevel\r\n{\r\n Error,\r\n Warning,\r\n Info\r\n}","import { FlightLegStatus } from \"../enums/flight-watch.enum\";\r\n\r\nexport interface Swim {\r\n tailNumber: string;\r\n flightDepartment: string;\r\n make: string;\r\n model: string;\r\n fAAMake: string;\r\n fAAModel: string;\r\n fuelCapacityGal: number | any;\r\n origin: string;\r\n city: string;\r\n departureICAO: string;\r\n departureCity: string;\r\n arrivalICAO: string;\r\n arrivalCity: string;\r\n atdLocal: string;\r\n atdZulu: string;\r\n etaLocal: string;\r\n etaZulu: string;\r\n ete: string;\r\n actualSpeed: number | any;\r\n altitude: number | any;\r\n latitude: number | any;\r\n longitude: number | any;\r\n isAircraftOnGround: boolean | any;\r\n itpMarginTemplate: string;\r\n status: FlightLegStatus;\r\n statusDisplayString: string;\r\n phone: string;\r\n visitsToMyFBO: number;\r\n arrivals: number;\r\n departures: number;\r\n id: number | any;\r\n fuelerlinxID: number | any;\r\n vendor: string;\r\n transactionStatus: string;\r\n icaoAircraftCode: string;\r\n isInNetwork: boolean | any;\r\n isOutOfNetwork: boolean | any;\r\n isActiveFuelRelease: boolean | any;\r\n isFuelerLinxClient: boolean | any;\r\n faaRegisteredOwner: string;\r\n airportWatchLiveDataId: number | any;\r\n swimFlightLegId: number | any;\r\n sourceOfCoordinates: string;\r\n positionDateTimeSource: string;\r\n dateCreated: string;\r\n}\r\nexport const swimTableColumns = {\r\n status: 'status',\r\n tailNumber: 'tailNumber',\r\n flightDepartment: 'flightDepartment',\r\n icaoAircraftCode: 'icaoAircraftCode',\r\n ete: 'ete',\r\n etaLocal: 'etaLocal',\r\n atdLocal: 'atdLocal',\r\n originAirport: 'departureICAO',\r\n originCity: 'departureCity',\r\n makeModel: 'makeModel',\r\n destinationAirport: 'arrivalICAO',\r\n destinationCity: 'arrivalCity',\r\n isAircraftOnGround: 'isAircraftOnGround',\r\n itpMarginTemplate: 'itpMarginTemplate',\r\n etaAtdZulu: 'etaAtdZulu',\r\n expandedDetail: 'expandedDetail',\r\n};\r\n\r\nexport const swimTableColumnsDisplayText = {\r\n status: 'Status',\r\n tailNumber: 'Tail Number',\r\n flightDepartment: 'Flight Department',\r\n icaoAircraftCode: 'Aircraft Type',\r\n ete: 'ETE',\r\n etaLocal: 'ETA',\r\n atdLocal: 'ATD',\r\n departureICAO: 'Origin Airport',\r\n departureCity: 'Origin City',\r\n arrivalICAO: 'Destination Airport',\r\n arrivalCity: 'Destination City',\r\n isAircraftOnGround: 'On Ground',\r\n itpMarginTemplate: 'ITP Margin Template',\r\n makeModel: 'Make/Model',\r\n expandedDetail: 'expandedDetail',\r\n};\r\n\r\nexport const tailNumberTextColor = {\r\n fuelerLinx: '#1D497F',\r\n activeFuelRelease: '#0DC520',\r\n outOfNetwork: '#C1C1C1',\r\n inNetwork: '#FF7F00',\r\n};\r\nexport const stautsTextColor = {\r\n EnRoute: '#000000',\r\n Landing: '#0000ff',\r\n TaxiingDestination: '#fedd00',\r\n Arrived: 'black',\r\n Departing: '#808080',\r\n TaxiingOrigin: '#fedd00',\r\n default: 'black'\r\n}\r\nexport const stautsIcons = {\r\n EnRoute: 'connecting_airports',\r\n Landing: 'flight_land',\r\n TaxiingDestination: 'local_taxi',\r\n Arrived: 'pin_drop',\r\n Departing: 'flight_takeoff',\r\n TaxiingOrigin: 'local_taxi',\r\n default: 'flight'\r\n}\r\n\r\nexport const stautsDisplayText= {\r\n EnRoute: 'En Route',\r\n Landing: 'Landing',\r\n TaxiingDestination: 'Taxiing',\r\n Arrived: 'Arrived',\r\n Departing: 'Departing',\r\n TaxiingOrigin: 'Taxiing',\r\n}\r\n\r\nexport interface MapMarkers {\r\n flights : MapMarkerInfo,\r\n flightsReversed : MapMarkerInfo,\r\n fbos: MapMarkerInfo,\r\n airports: MapMarkerInfo\r\n}\r\nexport interface MapMarkerInfo {\r\n sourceId: string,\r\n layerId: string,\r\n data: any[] | null\r\n}\r\n","import { AccountType } from \"../enums/user-role\";\r\n\r\nexport class User {\r\n oid: number;\r\n username: string;\r\n password: string;\r\n firstName: string;\r\n lastName: string;\r\n role: number;\r\n fboId: number;\r\n groupId: number;\r\n impersonatedRole: number;\r\n icao?: string;\r\n managerGroupId: number;\r\n conductorFbo?: boolean;\r\n isSingleSourceFbo: boolean;\r\n isNetworkFbo: boolean;\r\n accountType?: AccountType;\r\n isJetNetIntegrationEnabled?: boolean;\r\n decimalPrecision: number;\r\n remember: boolean;\r\n integrationStatus: boolean;\r\n}\r\n","import {\r\n Directive,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[bg]',\r\n})\r\nexport class BgDirective implements OnInit {\r\n @Input() bg: string | string[];\r\n @Input() outline = false;\r\n public currentBg: string;\r\n public defaultBg: string;\r\n public hoveredBg: string;\r\n public outlineColor: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.defaultBg = typeof this.bg === 'string' ? this.bg : this.bg[0];\r\n this.hoveredBg = typeof this.bg === 'string' ? this.bg : this.bg[1];\r\n this.currentBg = !this.outline ? this.defaultBg : 'transparent';\r\n this.outlineColor = this.defaultBg;\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.currentBg = this.hoveredBg;\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.currentBg = !this.outline ? this.defaultBg : 'transparent';\r\n }\r\n\r\n @HostBinding('style.background') get getBg() {\r\n return this.currentBg;\r\n }\r\n\r\n @HostBinding('style.borderColor') get getOutline() {\r\n return this.outlineColor;\r\n }\r\n\r\n @HostBinding('class.custom-bg') get getClass() {\r\n return true;\r\n }\r\n}\r\n","import {\r\n Directive,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[color]',\r\n})\r\nexport class ColorDirective implements OnInit {\r\n @Input() color: string | string[];\r\n public currentColor: string;\r\n public defaultColor: string;\r\n public hoveredColor: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.defaultColor =\r\n typeof this.color === 'string' ? this.color : this.color[0];\r\n this.hoveredColor =\r\n typeof this.color === 'string' ? this.color : this.color[1];\r\n this.currentColor = this.defaultColor;\r\n }\r\n\r\n @HostListener('mouseenter') onMouseEnter() {\r\n this.currentColor = this.hoveredColor;\r\n }\r\n\r\n @HostListener('mouseleave') onMouseLeave() {\r\n this.currentColor = this.defaultColor;\r\n }\r\n\r\n @HostBinding('style.color') get getColor() {\r\n return this.currentColor;\r\n }\r\n\r\n @HostBinding('class.custom-color') get getClass() {\r\n return true;\r\n }\r\n}\r\n","import { Directive, HostBinding, Input, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[gradient]',\r\n})\r\nexport class GradientDirective implements OnInit {\r\n @Input() gradient: string[];\r\n public firstColor: string;\r\n public secondColor: string;\r\n public linearGradient: string;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.firstColor = this.gradient[0];\r\n this.secondColor = this.gradient[1];\r\n this.linearGradient =\r\n 'linear-gradient(to right, ' +\r\n this.firstColor +\r\n ' 0%, ' +\r\n this.secondColor +\r\n ' 51%, ' +\r\n this.firstColor +\r\n ' 100%)';\r\n }\r\n\r\n @HostBinding('style.backgroundImage') get getGradient() {\r\n return this.linearGradient;\r\n }\r\n\r\n @HostBinding('class.custom-gradient') get getClass() {\r\n return true;\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ni-badge',\r\n styleUrls: ['./ni-badge.component.scss'],\r\n templateUrl: './ni-badge.component.html',\r\n})\r\nexport class NiBadgeComponent implements OnInit {\r\n @Input() color = '';\r\n @Input() customColor = '';\r\n @Input() outline = false;\r\n @Input() borderRadius = true;\r\n @Input() arrow = '';\r\n @Input() size = '';\r\n @Input() position = '';\r\n\r\n public badgeClasses: any = {};\r\n public arrowClasses: any = {};\r\n public badgeStyles: any = {};\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {\r\n this.badgeClasses = this.getClasses();\r\n this.arrowClasses = this.getArrowClasses();\r\n this.badgeStyles = this.getStyles();\r\n }\r\n\r\n getClasses() {\r\n return {\r\n 'arrow-left-badge': this.arrow === 'left',\r\n 'arrow-right-badge': this.arrow === 'right',\r\n 'border-radius-badge': this.borderRadius,\r\n 'bottom-left': this.position === 'bottom-left',\r\n 'bottom-right': this.position === 'bottom-right',\r\n 'custom-badge': this.customColor,\r\n 'danger-badge': this.color === 'danger',\r\n 'info-badge': this.color === 'info',\r\n 'large-badge': this.size === 'large',\r\n 'medium-badge': this.size === 'medium',\r\n 'outline-badge': this.outline,\r\n 'success-badge': this.color === 'success',\r\n 'top-left': this.position === 'top-left',\r\n 'warning-badge': this.color === 'warning',\r\n 'active-badge': this.color === 'active',\r\n };\r\n }\r\n getStyles() {\r\n return {\r\n 'background-color': this.customColor,\r\n 'border-color': this.customColor,\r\n color: this.customColor,\r\n };\r\n }\r\n getArrowClasses() {\r\n return {\r\n 'arrow-bottom': this.arrow === 'bottom',\r\n 'arrow-left': this.arrow === 'left',\r\n 'arrow-right': this.arrow === 'right',\r\n 'arrow-top': this.arrow === 'top',\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n","import { Component, Input, SimpleChanges } from '@angular/core';\r\n\r\nimport { Item } from './item';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ni-breadcrumb',\r\n styleUrls: ['./ni-breadcrumb.component.scss'],\r\n templateUrl: './ni-breadcrumb.component.html',\r\n})\r\nexport class NiBreadcrumbComponent {\r\n @Input() menu: Item[] = [];\r\n @Input() separator = '/';\r\n private defaultItem : Item = { title: 'None', icon: '', link:'' };\r\n private _sectionTitle: Item = this.defaultItem;\r\n isDashboard: boolean = false;\r\n\r\n private whitelist = [\r\n '/default-layout/dashboard',\r\n '/default-layout/dashboard-fbo',\r\n '/default-layout/dashboard-fbo-updated',\r\n '/default-layout/dashboard-csr'\r\n ];\r\n\r\n private breadcrumbs: any[] = [\r\n {\r\n link: '/default-layout',\r\n title: 'Main',\r\n },\r\n {\r\n link: '/default-layout/analytics',\r\n title: 'Analytics',\r\n },\r\n {\r\n link: '/default-layout/customers',\r\n title: 'Customer Manager',\r\n },\r\n {\r\n link: '/default-layout/email-templates',\r\n title: 'Email Templates',\r\n },\r\n {\r\n link: '/default-layout/fuelreqs',\r\n title: 'Fuel & Service Orders',\r\n },\r\n {\r\n link: '/default-layout/customers',\r\n title: 'Customer Manager',\r\n },\r\n {\r\n link: '/default-layout/groups',\r\n title: 'Groups',\r\n },\r\n {\r\n link: '/default-layout/fuelreqs',\r\n title: 'Fuel Orders',\r\n },\r\n {\r\n link: '/default-layout/pricing-templates',\r\n title: 'ITP Margin Templates',\r\n },\r\n {\r\n link: '/default-layout/pricing-templates',\r\n title: 'ITP Margin Templates',\r\n },\r\n {\r\n link: '/default-layout/flight-watch',\r\n title: 'Flight Watch',\r\n },\r\n {\r\n link: '/default-layout/services-and-fees',\r\n title: 'Services & Fees Admin',\r\n },\r\n {\r\n link: '/default-layout/ramp-fees',\r\n title: 'Ramp Fees',\r\n },\r\n {\r\n link: '/default-layout/email-templates',\r\n title: 'Email Templates',\r\n },\r\n {\r\n link: '/default-layout/customers',\r\n title: 'Customers',\r\n },\r\n {\r\n link: '/default-layout/fbos',\r\n title: 'FBOs',\r\n },\r\n {\r\n link: '/default-layout/groups',\r\n title: 'Groups',\r\n },\r\n {\r\n link: '/default-layout/fbo-geofencing',\r\n title: 'FBO Geofencing',\r\n },\r\n {\r\n link: '/default-layout/dashboard-fbo-updated',\r\n title: 'Dashboard',\r\n },\r\n {\r\n link: '/default-layout/dashboard-fbo',\r\n title: 'Dashboard',\r\n },\r\n {\r\n link: '/default-layout/dashboard',\r\n title: 'Dashboard',\r\n },\r\n {\r\n link: '/default-layout/dashboard-csr',\r\n title: 'CSR Dashboard',\r\n }\r\n ];\r\n\r\n routerSubscription: Subscription;\r\n\r\n constructor(private router: Router) {\r\n this.routerSubscription = router.events.subscribe((val) => {\r\n if(val instanceof NavigationEnd){\r\n if (this.whitelist.includes(val.url)) {\r\n this.isDashboard = true;\r\n }\r\n else {\r\n this.isDashboard = false;\r\n }\r\n\r\n var breadcrumb = this.breadcrumbs.find((item) => item.link === val.url);\r\n\r\n if(breadcrumb)\r\n this._sectionTitle = breadcrumb;\r\n else\r\n this._sectionTitle = this.defaultItem;\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.routerSubscription?.unsubscribe();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.menu) {\r\n this._sectionTitle = changes.menu.currentValue.pop();\r\n }\r\n }\r\n get sectionTitle(): Item {\r\n return this._sectionTitle;\r\n\r\n }\r\n set sectionTitle(title: Item) {\r\n this._sectionTitle = title;\r\n }\r\n}\r\n","\r\n

{{ sectionTitle.title }}

\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n host: {\r\n '[class.ni-btn-accent]': 'view === \"accent\"',\r\n '[class.ni-btn-blank]': 'view === \"blank\"',\r\n '[class.ni-btn-block]': 'block',\r\n '[class.ni-btn-customButton]': 'padding === \"padding\"',\r\n '[class.ni-btn-default]': 'view === \"default\"',\r\n '[class.ni-btn-disabled]': 'disabled',\r\n '[class.ni-btn-error]': 'view === \"error\"',\r\n '[class.ni-btn-gradient]': 'gradient',\r\n '[class.ni-btn-icon-animation]': 'iconAnimation',\r\n '[class.ni-btn-info]': 'view === \"info\"',\r\n '[class.ni-btn-large]': 'size === \"large\"',\r\n '[class.ni-btn-left]': 'align === \"left\"',\r\n '[class.ni-btn-outline]': 'outline',\r\n '[class.ni-btn-right]': 'align === \"right\"',\r\n '[class.ni-btn-small]': 'size === \"small\"',\r\n '[class.ni-btn-success]': 'view === \"success\"',\r\n '[class.ni-btn-warning]': 'view === \"warning\"',\r\n '[class.ni-btn]': 'true',\r\n '[style.border-radius]': 'shape',\r\n },\r\n selector: '[ni-button]',\r\n styleUrls: ['./ni-button.component.scss'],\r\n templateUrl: './ni-button.component.html',\r\n})\r\nexport class NiButtonComponent implements OnInit {\r\n @Input() block = false;\r\n @Input() gradient = false;\r\n @Input() disabled = false;\r\n @Input() outline = false;\r\n @Input() lineStyle: string;\r\n @Input() align = 'center';\r\n @Input() size = 'default';\r\n @Input() view = 'default';\r\n @Input() padding = 'default';\r\n @Input() shape: number | string;\r\n @Input() beforeIcon: string;\r\n @Input() afterIcon: string;\r\n @Input() iconAnimation = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n\r\n\r\n\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport {\r\n AfterContentChecked,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n animations: [\r\n trigger('openClose', [\r\n state(\r\n 'true',\r\n style({\r\n height: '*',\r\n paddingBottom: '15px',\r\n paddingTop: '15px',\r\n })\r\n ),\r\n state(\r\n 'false',\r\n style({\r\n height: '0',\r\n paddingBottom: '0',\r\n paddingTop: '0',\r\n })\r\n ),\r\n transition('false <=> true', [animate(300)]),\r\n ]),\r\n ],\r\n host: {\r\n '[class.ni-card]': 'true',\r\n },\r\n selector: 'ni-card',\r\n styleUrls: ['./ni-card.component.scss'],\r\n templateUrl: './ni-card.component.html',\r\n})\r\nexport class NiCardComponent implements AfterContentChecked {\r\n @ViewChild('cardTitle') cardTitle: ElementRef;\r\n @ViewChild('cardSubTitle') cardSubTitle: ElementRef;\r\n\r\n @Input() title = '';\r\n @Input() subtitle = '';\r\n\r\n @Input() bgColor = '';\r\n @Input() color = '';\r\n @Input() headerBgColor = '';\r\n @Input() headerColor = '';\r\n\r\n @Input() outline = false;\r\n\r\n @Input() theme = '';\r\n @Input() align = '';\r\n\r\n @Input() customStyle = '';\r\n\r\n @Input() collapsible = false;\r\n\r\n @Input() opened = false;\r\n\r\n subTitleVisible = true;\r\n\r\n constructor() {}\r\n\r\n ngAfterContentChecked(): void {\r\n this.checkSubtitleVisible();\r\n }\r\n\r\n @HostListener('window:resize')\r\n onResize() {\r\n this.checkSubtitleVisible();\r\n }\r\n\r\n headerClick() {\r\n if (this.collapsible) {\r\n this.opened = !this.opened;\r\n }\r\n }\r\n\r\n private checkSubtitleVisible() {\r\n if (this.subtitle && this.cardTitle && this.cardSubTitle) {\r\n const limit =\r\n this.cardTitle.nativeElement.offsetLeft +\r\n this.cardTitle.nativeElement.offsetWidth +\r\n 10;\r\n const subtitleStart = this.cardSubTitle.nativeElement.offsetLeft;\r\n if (subtitleStart < limit && this.subTitleVisible) {\r\n this.subTitleVisible = false;\r\n }\r\n if (subtitleStart >= limit && !this.subTitleVisible) {\r\n this.subTitleVisible = true;\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ title }} {{ collapsible && !opened ? \" + \" : \"\" }}\r\n \r\n {{ subtitle }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { BgDirective } from './directives/bg/bg.directive';\r\nimport { ColorDirective } from './directives/color/color.directive';\r\nimport { GradientDirective } from './directives/gradient/gradient.directive';\r\nimport { NiBadgeComponent } from './ni-badge/ni-badge.component';\r\nimport { NiBreadcrumbComponent } from './ni-breadcrumb/ni-breadcrumb.component';\r\nimport { NiButtonComponent } from './ni-button/ni-button.component';\r\nimport { NiCardComponent } from './ni-card/ni-card.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n NiBadgeComponent,\r\n NiBreadcrumbComponent,\r\n NiButtonComponent,\r\n NiCardComponent,\r\n ColorDirective,\r\n BgDirective,\r\n GradientDirective,\r\n ],\r\n exports: [\r\n NiBadgeComponent,\r\n NiBreadcrumbComponent,\r\n NiButtonComponent,\r\n NiCardComponent,\r\n ColorDirective,\r\n BgDirective,\r\n GradientDirective,\r\n ],\r\n imports: [CommonModule, FormsModule, NgbPopoverModule, RouterModule],\r\n})\r\nexport class NiComponentsModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { urls } from 'src/app/constants/externalUrlsConstants';\r\n\r\n\r\n@Component({\r\n selector: 'app-about-fbolinx',\r\n templateUrl: './about-fbolinx.component.html',\r\n styleUrls: ['./about-fbolinx.component.scss']\r\n})\r\nexport class AboutFbolinxComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n openRequestDemo() {\r\n window.open(urls.demoRequestUrl, '_blank').focus();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

\r\n About FBOLinx\r\n

\r\n
\r\n

\r\n FBOLinx is a direct pricing solution designed to integrate into FuelerLinx: the world's largest business aviation fuel marketplace and tankering software system. FBOs can automatically push direct quotes, receive fuel orders, and accept payments from one intuitive interface.\r\n

\r\n\r\n

\r\n FBOLinx includes integrated CRM functionality to help you manage leads, contacts and confidential pricing. The essential platform for FBOs that want to understand their customers, grow relationships, and increase efficiency.\r\n

\r\n
\r\n

\r\n Features\r\n

\r\n

\r\n Direct and Confidential Pricing to over 3,000 aircraft FBOLinx instantly provides a direct pipeline from your FBO to flight departments; ensuring accurate, confidential pricing tailored to your customer. A simple interface ensures your FBO maximizes exposure through the FuelerLinx marketplace.\r\n

\r\n\r\n

\r\n Build Customer Relationships FBOLinx gives you the ability to reach more flight departments within a vast and transient market. Nurture and grow your customer base with tailored pricing and instant access.\r\n

\r\n\r\n

\r\n Your Direct Pricing in the FuelerLinx Marketplace FuelerLinx software is used by over 800 flight departments to make more informed fuel purchasing decisions. It’s secure, confidential and effective. FBOLinx users can push tailored, confidential pricing to each flight department in the FuelerLinx network in seconds.\r\n

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

\r\n  \r\n

\r\n

\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n Request Demo\r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { csvFileOptions, GridBase } from 'src/app/services/tables/GridBase';\r\nimport { ColumnType } from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport { NullOrEmptyToDefault } from 'src/app/shared/pipes/null/NullOrEmptyToDefault.pipe';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\nimport { CustomerAircraftsEditComponent } from '../../customer-aircrafts/customer-aircrafts-edit/customer-aircrafts-edit.component';\r\nimport { CallbackComponent } from 'src/app/shared/components/favorite-icon/favorite-icon.component';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-aircrafts-grid',\r\n styleUrls: ['./aircrafts-grid.component.scss'],\r\n templateUrl: './aircrafts-grid.component.html',\r\n providers: [NullOrEmptyToDefault]\r\n})\r\nexport class AircraftsGridComponent extends GridBase implements OnInit {\r\n // Input/Output Bindings\r\n @Output() editAircraftClicked = new EventEmitter();\r\n @Output() refreshAircrafts = new EventEmitter();\r\n @Input() aircraftsData: Array;\r\n @Input() pricingTemplatesData: Array;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n // Public Members\r\n public aircraftsDataSource: MatTableDataSource = null;\r\n public columns: ColumnType[] = [\r\n { id: 'tailNumber', name: 'Tail Number'},\r\n { id: 'aircraftType', name: 'Aircraft Type'},\r\n { id: 'aircraftSize',name: 'Aircraft Size'},\r\n { id: 'company', name: 'Company'},\r\n { id: 'aircraftPricingTemplate', name: 'Aircraft Pricing Template'},\r\n ];\r\n displayedColumns = this.columns.map(function(item) {\r\n return item.id;\r\n });\r\n public resultsLength = 0;\r\n public aircraftSizes: Array;\r\n public aircraftTypes: Array;\r\n public isLoadingAircraftTypes = false;\r\n customersCsvOptions: csvFileOptions = { fileName: 'Aircraft', sheetName: 'Aircraft' };\r\n\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(\r\n public newCustomerAircraftDialog: MatDialog,\r\n public editCustomerAircraftDialog: MatDialog,\r\n private aircraftsService: AircraftsService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private sharedService: SharedService ,\r\n private route : ActivatedRoute,\r\n private nullOrEmptyToDefault: NullOrEmptyToDefault\r\n ) {\r\n super();\r\n this.isLoadingAircraftTypes = true;\r\n this.aircraftsService.getAll().subscribe((data: any) => {\r\n this.aircraftTypes = data;\r\n this.isLoadingAircraftTypes = false;\r\n }, (error: any) => {\r\n //Error from service - set the loading flag to false so it tries again momentarily\r\n this.isLoadingAircraftTypes = false;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.aircraftsData) {\r\n return;\r\n }\r\n\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.aircraftsDataSource = new MatTableDataSource(this.aircraftsData);\r\n this.aircraftsDataSource.sort = this.sort;\r\n this.aircraftsDataSource.paginator = this.paginator;\r\n\r\n this.resultsLength = this.aircraftsData.length;\r\n this.aircraftsDataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'aircraftType':\r\n return item.make + ' ' + item.model;\r\n case 'aircraftSize':\r\n switch (item.size) {\r\n case 8: // Single Engine Piston\r\n return 1;\r\n case 11: // Light Twin\r\n return 2;\r\n case 12: // Heavy Twin\r\n return 3;\r\n case 4: // Light Helicopter\r\n return 4;\r\n case 9: // Medium Helicopter\r\n return 5;\r\n case 10: // Heavy Helicopter\r\n return 6;\r\n case 13: // Light Turboprop\r\n return 7;\r\n case 6: // Single Turboprop\r\n return 8;\r\n case 14: // Medium Turboprop\r\n return 9;\r\n case 15: // Heavy Turboprop\r\n return 10;\r\n case 7: // Very Light Jet\r\n return 11;\r\n case 1: // Light Jet\r\n return 12;\r\n case 2: // Medium Jet\r\n return 13;\r\n case 3: // Heavy Jet\r\n return 14;\r\n case 16: // Super Heavy Jet\r\n return 15;\r\n case 5: // Wide Body\r\n return 16;\r\n default:\r\n return 17;\r\n }\r\n case 'aircraftPricingTemplate':\r\n return item.pricingTemplateName;\r\n default:\r\n return item[property];\r\n }\r\n };\r\n this.setVirtualScrollVariables(this.paginator, this.sort, this.aircraftsDataSource.data);\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.aircraftsData) {\r\n this.dataSource.data = changes.aircraftsData.currentValue;\r\n }\r\n }\r\n ngOnDestroy(){\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n public editCustomerAircraft(customerAircraft) {\r\n if (customerAircraft) {\r\n const dialogRef = this.editCustomerAircraftDialog.open(\r\n CustomerAircraftsEditComponent,\r\n {\r\n data: {\r\n disableDelete:\r\n customerAircraft.isFuelerlinxNetwork &&\r\n customerAircraft.addedFrom === 1,\r\n oid: customerAircraft.oid,\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n const id = this.route.snapshot.paramMap.get('id');\r\n if (result.toDelete) {\r\n this.customerAircraftsService\r\n .remove(result , this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.refreshAircrafts.emit();\r\n });\r\n }\r\n\r\n let aircraftSizes = [];\r\n this.aircraftsService\r\n .getAircraftSizes()\r\n .subscribe((data: any) => {\r\n if (data) {\r\n aircraftSizes = data;\r\n }\r\n });\r\n\r\n this.customerAircraftsService\r\n .get({ oid: result.oid })\r\n .subscribe((data: any) => {\r\n if (data) {\r\n const selectedAircraft = this.aircraftsData.find(\r\n (x) => x.oid === result.oid\r\n );\r\n\r\n if (selectedAircraft) {\r\n selectedAircraft.tailNumber = data.tailNumber;\r\n selectedAircraft.make = data.make;\r\n selectedAircraft.model = data.model;\r\n selectedAircraft.size = data.size;\r\n\r\n if (data.size) {\r\n const sizeText = aircraftSizes.find(\r\n (x) => x.value === data.size\r\n );\r\n\r\n if (sizeText) {\r\n selectedAircraft.aircraftSizeDescription =\r\n sizeText.description;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.editAircraftClicked.emit(result);\r\n });\r\n }\r\n }\r\n\r\n public applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n public onMarginChange(event: MatSelectChange, customerAircraft: any) {\r\n const {\r\n aircraftId,\r\n customerId,\r\n groupId,\r\n make,\r\n model,\r\n oid,\r\n pricingTemplateId,\r\n size,\r\n tailNumber,\r\n } = customerAircraft;\r\n this.customerAircraftsService\r\n .updateTemplate(this.sharedService.currentUser.fboId, {\r\n aircraftId,\r\n customerId,\r\n groupId,\r\n make,\r\n model,\r\n oid,\r\n oldPricingTemplateId: pricingTemplateId,\r\n pricingTemplateId: event.value,\r\n size,\r\n tailNumber,\r\n })\r\n .subscribe((data: any) => {\r\n customerAircraft.pricingTemplateId = event.value;\r\n });\r\n }\r\n exportCsv() {\r\n let computePropertyFnc = (item: any[], id: string): any => {\r\n if(id == \"aircraftType\")\r\n return this.getAircrafttypeDisplayString(item);\r\n else if(id == \"aircraftSize\")\r\n return item['aircraftSizeDescription'];\r\n else\r\n return null;\r\n }\r\n this.exportCsvFile(this.columns,this.customersCsvOptions.fileName,this.customersCsvOptions.sheetName,computePropertyFnc);\r\n }\r\n getAircrafttypeDisplayString(aircraft: any): string {\r\n return this.nullOrEmptyToDefault.transform(aircraft.make,defaultStringsEnum.empty) +' '+ this.nullOrEmptyToDefault.transform(aircraft.model,defaultStringsEnum.empty);\r\n }\r\n setIsFavoriteProperty(aircraft: any): any {\r\n aircraft.isFavorite = aircraft.favoriteAircraft != null;\r\n return aircraft;\r\n }\r\n get getCallBackComponent(): CallbackComponent{\r\n return CallbackComponent.aircraft;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
Tail\r\n
\r\n \r\n {{ aircraft.tailNumber }}\r\n
\r\n
Type\r\n {{ getAircrafttypeDisplayString(aircraft) }}\r\n Size\r\n {{ aircraft.aircraftSizeDescription }}\r\n \r\n Company\r\n \r\n {{ aircraft.company }}\r\n \r\n Pricing\r\n \r\n \r\n Company Pricing\r\n \r\n None\r\n {{ pricingTemplate.name }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, OnInit, Output } from '@angular/core';\r\nimport { AnaliticsReportType } from '../analytics-report-popup/analytics-report-popup.component';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n\r\nexport interface AnatylticsReports {\r\n type: AnaliticsReportType;\r\n title: string;\r\n description: string;\r\n link: string;\r\n isHidden: boolean;\r\n}\r\nexport const analyticsReports: Record = [\r\n {\r\n type: AnaliticsReportType.CustomerStatistics,\r\n title: 'Customer Statistics',\r\n description:\r\n 'This report allows you to track detailed FuelerLinx operator analytics related to their fuel orders, conversion rates, frequency of visits, etc.',\r\n link: 'activity-report',\r\n isHidden: false,\r\n },\r\n {\r\n type: AnaliticsReportType.ArrivalsDepartures,\r\n title: 'Arrivals & Departures',\r\n description:\r\n 'This report shows airport arrivals and departures by tail number',\r\n link: 'activity-report',\r\n isHidden: false,\r\n },\r\n {\r\n type: AnaliticsReportType.FBONetworkArrivalDepartures,\r\n title: 'FBO Network Arrival & Departures',\r\n description:\r\n 'This report shows ADS-B tracked aircraft visits to particpating FBOLinx locations within your FBO Network',\r\n link: 'activity-report',\r\n isHidden: false,\r\n },\r\n {\r\n type: AnaliticsReportType.LostToCompetition,\r\n title: 'Lost to Competition',\r\n description:\r\n 'FuelerLinx customers that have dispatched fuel at another FBO at your airport.',\r\n link: 'activity-report',\r\n isHidden: false,\r\n },\r\n {\r\n type: AnaliticsReportType.FuelerLinxCustomerCaptureRate,\r\n title: 'FuelerLinx Customer Capture Rate',\r\n description:\r\n 'This report is a tracks the percentage of times a FuelerLinx customer dispatched fuel at your FBO vs. your competition',\r\n link: 'activity-report',\r\n isHidden: false,\r\n },\r\n];\r\n@Component({\r\n selector: 'app-analytics-activity-reports',\r\n templateUrl: './analytics-activity-reports.component.html',\r\n styleUrls: ['./analytics-activity-reports.component.scss'],\r\n})\r\nexport class AnalyticsActivityReportsComponent implements OnInit {\r\n @Output() reportClicked = new EventEmitter();\r\n\r\n reports = analyticsReports;\r\n constructor(private sharedService: SharedService) {}\r\n\r\n ngOnInit() {\r\n var isSingleSourceFbo: boolean = JSON.parse(\r\n this.sharedService\r\n .getCurrentUserPropertyValue(\r\n localStorageAccessConstant.isSingleSourceFbo\r\n )\r\n );\r\n this.reports[AnaliticsReportType.LostToCompetition].isHidden =\r\n isSingleSourceFbo;\r\n\r\n this.reports[AnaliticsReportType.FuelerLinxCustomerCaptureRate].isHidden =\r\n isSingleSourceFbo;\r\n\r\n var isNetworkFbo: boolean = JSON.parse(\r\n this.sharedService\r\n .getCurrentUserPropertyValue(\r\n localStorageAccessConstant.isNetworkFbo\r\n )\r\n );\r\n this.reports[AnaliticsReportType.FBONetworkArrivalDepartures].isHidden =\r\n !isNetworkFbo;\r\n }\r\n\r\n openReport(anatylticsReports: AnatylticsReports) {\r\n this.reportClicked.emit(anatylticsReports);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n

{{report.title}}

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

{{report.description}}

\r\n
\r\n
\r\n
\r\n
\r\n","import {\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSort } from '@angular/material/sort';\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\nimport { Observable, Subject, Subscription } from 'rxjs';\nimport { ColumnType } from '../../../shared/components/table-settings/table-settings.component';\nimport { JetNetInformationComponent } from '../../../shared/components/jetnet-information/jetnet-information.component';\n\n\nimport { isCommercialAircraft } from '../../../../utils/aircraft';\nimport { AIRCRAFT_IMAGES } from '../../flight-watch/flight-watch-map/aircraft-images';\n\n// Services\nimport { SharedService } from '../../../layouts/shared-service';\nimport { AirportWatchService } from '../../../services/airportwatch.service';\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\nimport { FbosService } from '../../../services/fbos.service';\n\n//Models\nimport { CustomersListType } from '../../../models/customer';\nimport { FlightWatchHistorical } from '../../../models/flight-watch-historical';\nimport {\n AircraftAssignModalComponent,\n NewCustomerAircraftDialogData,\n} from '../../../shared/components/aircraft-assign-modal/aircraft-assign-modal.component';\nimport { csvFileOptions, GridBase } from '../../../services/tables/GridBase';\nimport { localStorageAccessConstant } from '../../../constants/LocalStorageAccessConstant';\nimport { SelectedDateFilter } from '../../../shared/components/preset-date-filter/preset-date-filter.component';\nimport { FbosGridViewModel } from '../../../models/FbosGridViewModel';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'app-analytics-airport-arrivals-depatures',\n styleUrls: ['./analytics-airport-arrivals-depatures.component.scss'],\n templateUrl: './analytics-airport-arrivals-depatures.component.html',\n})\nexport class AnalyticsAirportArrivalsDepaturesComponent\n extends GridBase\n implements OnInit\n{\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(MatPaginator) paginator: MatPaginator;\n\n @Input() customers: CustomersListType[] = [];\n @Output() refreshCustomers = new EventEmitter();\n\n chartName = 'airport-arrivals-depatures-table';\n\n icao: string;\n selectedDateFilter: SelectedDateFilter;\n\n hideCommercialAicrafts = false;\n\n data: FlightWatchHistorical[];\n\n fbo: any;\n allFbos: FbosGridViewModel[] = [];\n selectFbos: FbosGridViewModel[] = [];\n\n filtersChanged: Subject = new Subject();\n\n aircraftTypes = AIRCRAFT_IMAGES;\n\n tableLocalStorageKey: string;\n\n columns: ColumnType[] = [];\n\n fboName: string = '';\n\n tailNumbers: any[] = [];\n\n hiddenColumns: string[] = ['hexCode', 'flightNumber', 'pastVisits', 'visitsToMyFbo', 'isConfirmedVisit', 'percentOfVisits'];\n\n initialColumns: ColumnType[] = [\n {\n id: 'company',\n name: 'Company',\n },\n {\n id: 'tailNumber',\n name: 'Tail #',\n },\n {\n id: 'flightNumber',\n name: 'Flight #',\n },\n {\n id: 'hexCode',\n name: 'Hex #',\n hidden: true,\n },\n {\n id: 'aircraftType',\n name: `Aircraft`,\n },\n {\n id: 'dateTime',\n name: 'Date and Time',\n sort: 'desc',\n },\n {\n id: 'status',\n name: 'Departure / Arrival',\n },\n {\n id: 'pastVisits',\n name: 'Past Visits',\n },\n {\n id: 'visitsToMyFbo',\n name: 'Visits to My FBO',\n },\n {\n id: 'isConfirmedVisit',\n name: 'Visit to My FBO?',\n },\n {\n id: 'percentOfVisits',\n name: 'Percent of Visits',\n },\n {\n id: 'originated',\n name: 'Origin ICAO',\n },\n {\n id: 'customerActionStatus',\r\n name:'Customer Action Status'\r\n }\n ];\n\n csvFileOptions: csvFileOptions = {\n fileName: 'Airport Departures and Arrivals',\n sheetName: 'Airport Departures and Arrivals',\n };\n\n filtersChangeSubscription: Subscription;\n sortChangeSubscription: Subscription;\n needsAttentionOptions: any[];\n\n constructor(\n private newCustomerAircraftDialog: MatDialog,\n private tableSettingsDialog: MatDialog,\n private airportWatchService: AirportWatchService,\n private sharedService: SharedService,\n private ngxLoader: NgxUiLoaderService,\n private customerInfoByGroupService: CustomerinfobygroupService,\n private fbosService: FbosService,\n private jetNetInformationDialog: MatDialog,\n ) {\n super();\n this.icao = this.sharedService.getCurrentUserPropertyValue(\n localStorageAccessConstant.icao\n );\n this.filtersChangeSubscription = this.filtersChanged\n .pipe(debounceTime(500))\n .subscribe(() => this.refreshDataSource());\n this.initColumns();\n }\n\n get visibleColumns() {\n return (\n this.columns\n .filter((column) => !column.hidden)\n .map((column) => column.id) || []\n );\n }\n\n get isJetNetIntegrationEnabled() {\n return this.sharedService.currentUser.isJetNetIntegrationEnabled;\n }\n\n ngOnInit() {\n this.fbosService\n .getFbosByIcao(this.icao)\n .subscribe((data: FbosGridViewModel[]) => {\n this.allFbos = data.filter((fbo) => fbo.acukwikFboHandlerId != null);\n let currentFbo = this.allFbos.find((fbo) => fbo.oid == this.sharedService.currentUser.fboId);\n this.selectFbos.push(currentFbo);\n let otherOpt = { ...currentFbo };\n otherOpt.oid = 0;\n otherOpt.acukwikFboHandlerId = 0;\n otherOpt.fbo = 'Other';\n this.selectFbos.push(otherOpt);\n this.fbo = currentFbo;\n this.fboName = currentFbo.fbo;\n });\n this.getCustomersList();\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\n this.columns = this.columns.map((column) =>\n column.id === this.sort.active\n ? { ...column, sort: this.sort.direction }\n : {\n hidden: column.hidden,\n id: column.id,\n name: column.name,\n }\n );\n\n this.saveSettings();\n });\n\n var needsAttentionOptionsList = ['Email Required', 'Setup Required', 'Top Customer']\n this.needsAttentionOptions = needsAttentionOptionsList.map((nl) => ({\n label: nl,\n value: nl,\n }));\n\n this.refreshData();\n }\n\n getCustomersList() {\n if (this.customers && this.customers.length > 0) return;\n this.customerInfoByGroupService\n .getCustomersListByGroupAndFbo(\n this.sharedService.currentUser.groupId,\n this.sharedService.currentUser.fboId\n )\n .subscribe((customers: any[]) => {\n this.customers = customers;\n });\n }\n\n fetchData(startDate: Date, endDate: Date): Observable{\n return this.airportWatchService.getArrivalsDepartures(\n this.sharedService.currentUser.groupId,\n this.sharedService.currentUser.fboId,\n {\n endDateTime: endDate,\n startDateTime: startDate,\n },\n this.icao\n );\n }\n\n fetchSwimData(startDate: Date, endDate: Date, icao: string) {\n return this.airportWatchService.getArrivalsDeparturesSwim(\n this.sharedService.currentUser.fboId,\n {\n endDateTime: endDate,\n startDateTime: startDate,\n },\n this.icao\n );\n }\n\n initColumns() {\n this.tableLocalStorageKey = `analytics-airport-arrivals-depatures-${this.sharedService.currentUser.fboId}`;\n this.columns = this.getClientSavedColumns(\n this.tableLocalStorageKey,\n this.initialColumns\n );\n }\n ngOnDestroy() {\n this.sortChangeSubscription?.unsubscribe();\n this.filtersChangeSubscription?.unsubscribe();\n }\n refreshData(isLoaderActive: boolean = false) {\n let endDate = this.getEndOfDayTime(this.filterEndDate, true);\n let startDate = this.getStartOfDayTime(this.filterStartDate, true);\n\n if (!isLoaderActive)\n this.ngxLoader.startLoader(this.chartName);\n\n if (this.sharedService.currentUser.icao == this.icao) {\n this.fetchData(startDate, endDate).subscribe(\n (data: FlightWatchHistorical[]) => {\n this.data = data;\n this.refreshDataSource();\n },\n () => { },\n () => {\n this.ngxLoader.stopLoader(this.chartName);\n }\n );\n }\n else {\n this.fetchSwimData(startDate, endDate, this.icao).subscribe(\n (data: FlightWatchHistorical[]) => {\n this.data = data;\n this.refreshDataSource();\n },\n () => { },\n () => {\n this.ngxLoader.stopLoader(this.chartName);\n }\n );\n }\n }\n\n refreshDataSource() {\n this.ngxLoader.startLoader(this.chartName);\n const data = this.data.filter(\n (x) => { return (!this.hideCommercialAicrafts)? true: !isCommercialAircraft(x.flightNumber)}\n ).map((x) => ({\n ...x,\n aircraftTypeCode: this.getAircraftLabel(x.aircraftTypeCode),\n isParkedWithinGeofence: x.parkingAcukwikFBOHandlerId == this.fbo.acukwikFboHandlerId\n }));\n\n this.setVirtualScrollVariables(this.paginator, this.sort, data);\n\n if (!this.dataSource) {\n this.dataSource.filteredData = [];\n }\n\n this.tailNumbers = [\n ...new Set(\n this.data\n .filter(\n (x) => { return (!this.hideCommercialAicrafts)? true: (!isCommercialAircraft(x.flightNumber) || !isCommercialAircraft(x.tailNumber))}\n ).map((x) => x.tailNumber)\n ),\n ].map((tailNumber) =>\n this.data.find((x) => x.tailNumber === tailNumber)\n );\n this.ngxLoader.stopAllLoader(this.chartName);\n }\n\n filterChanged(value: any = null) {\n if(typeof value == \"boolean\")\n this.hideCommercialAicrafts = value;\n\n this.filtersChanged.next({});\n }\n\n onClickAircraft(row: FlightWatchHistorical) {\n if (!row.company) {\n const dialogRef = this.newCustomerAircraftDialog.open<\n AircraftAssignModalComponent,\n Partial\n >(AircraftAssignModalComponent, {\n data: {\n customers: this.customers,\n tailNumber: row.flightNumber == null ? row.tailNumber : row.flightNumber,\n },\n panelClass: 'aircraft-assign-modal',\n width: '450px',\n });\n\n dialogRef\n .afterClosed()\n .subscribe((result: Partial) => {\n if (result) {\n this.refreshData();\n this.refreshCustomers.emit();\n }\n });\n }\n }\n\n exportCsv() {\n let computePropertyFnc = (item: any[], id: string): any => {\n if('isConfirmedVisit' == id)\n item[id] = item[id] ? 'Yes' : 'No';\n if(id == 'dateTime')\n item[id] = this.getlocalDateTime(item[id]);\n else\n if (id == 'aircraftTypeCode')\n item[id] = this.getAircraftLabel(item[id]);\n else if (id == \"customerActionStatus\") {\n return this.getNeedsAttentionDisplayString(item);\n }\n else return null;\n };\n this.exportCsvFile(\n this.columns,\n this.csvFileOptions.fileName,\n this.csvFileOptions.sheetName,\n computePropertyFnc\n );\n }\n\n clearAllFilters() {\n this.hideCommercialAicrafts = false;\n\n this.dataSource.filter = '';\n for (const filter of this.dataSource.filterCollection) {\n if (filter.isGlobal) {\n continue;\n }\n\n filter.dateFilter = {\n endDate: null,\n startDate: null,\n };\n filter.stringFilter = '';\n filter.numberRangeFilter = {\n end: null,\n start: null,\n };\n filter.isFiltered = false;\n }\n\n this.filterChanged();\n }\n\n getAircraftLabel(type: string) {\n const found = this.aircraftTypes.find((a) => a.id === type);\n if (found) {\n return found.label;\n } else {\n return 'Other';\n }\n }\n\n getNeedsAttentionDisplayString(customer: any): any {\n let message = customer.customerNeedsAttention;\n return message;\n }\n\n openSettings() {\n var _this = this;\n this.openSettingsDialog(\n this.tableSettingsDialog,\n this.columns,\n function (result) {\n _this.columns = result;\n _this.refreshSort(_this.sort, _this.columns);\n _this.saveSettings();\n }\n );\n }\n\n saveSettings() {\n localStorage.setItem(\n this.tableLocalStorageKey,\n JSON.stringify(this.columns)\n );\n }\n confirmedVisitToggled(row: FlightWatchHistorical): void{\n if (row.airportWatchHistoricalParking == null) {\n row.airportWatchHistoricalParking = {\n airportWatchHistoricalDataId: row.airportWatchHistoricalDataId,\n acukwikFbohandlerId: 0,\n oid: 0,\n };\n }\n\n row.airportWatchHistoricalParking.acukwikFbohandlerId = (row.isParkedWithinGeofence)?this.fbo.acukwikFboHandlerId: 0;\n\n row.airportWatchHistoricalParking.isConfirmed = true;\n\n this.ngxLoader.startLoader(this.chartName);\n if (row.airportWatchHistoricalParking.oid > 0) {\n this.airportWatchService\n .updateHistoricalParking(row)\n .subscribe((response: any) => {\n this.refreshData(true);\n });\n } else {\n this.airportWatchService\n .createHistoricalParking(row)\n .subscribe((response: any) => {\n this.refreshData(true);\n });\n }\n }\n changeIcaoFilter($event: string) {\n this.icao = $event;\n this.setColumns();\n this.refreshData();\n }\n applyPresetDateFilter(filter: SelectedDateFilter) {\n this.filterEndDate = filter.limitDate;\n this.filterStartDate = filter.offsetDate;\n this.refreshData();\n }\n tailNumberSearch(tailNumber: any) {\n if (tailNumber.trim() != \"\") {\n const dialogRef = this.jetNetInformationDialog.open(JetNetInformationComponent, {\n width: '1100px',\n data: tailNumber.trim()\n });\n dialogRef\n .afterClosed()\n .subscribe((result: any) => {\n if (result != null && result > 0) {\n this.refreshData();\n }\n });\n }\n }\n getlocalDateTime(date: Date): string{\n let curentdate = new Date(date+\"Z\");\n let localdate = curentdate.toLocaleString();\n return localdate;\n }\n private setColumns() {\n this.columns = this.filteredColumns;\n }\n get filteredColumns() {\n var filteredColumns = this.initialColumns;\n //if (!filteredColumns.find((column) => column.id === 'originated')) {\n // filteredColumns.push({\n // id: 'originated',\n // name: 'Origin ICAO',\n // });\n //};\n\n if (this.icao != this.sharedService.currentUser.icao)\n return filteredColumns.filter((column) => {\n return !this.hiddenColumns.includes(column.id);\n });\n else\n return filteredColumns;\n }\n}\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n Company\r\n \r\n \r\n \r\n {{ info.company }}\r\n \r\n \r\n \r\n Tail #\r\n \r\n \r\n \r\n {{ info.tailNumber }}\r\n 0\"> {{ info.tailNumber }}\r\n \r\n \r\n \r\n Customer Action Status\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Flight #\r\n \r\n \r\n \r\n {{ info.flightNumber }}\r\n \r\n \r\n \r\n Origin ICAO\r\n \r\n \r\n \r\n {{ info.originated }}\r\n \r\n \r\n \r\n Hex #\r\n \r\n \r\n \r\n {{ info.hexCode }}\r\n \r\n \r\n \r\n Aircraft\r\n \r\n \r\n \r\n {{ info.aircraftType }}\r\n \r\n \r\n \r\n Date and Time\r\n \r\n \r\n \r\n {{\r\n info.flightNumber || !info.percentOfVisits\r\n ? (getlocalDateTime(info.dateTime) | date : \"MM/dd/YYYY HH:mm\")\r\n : \"\"\r\n }}\r\n \r\n \r\n \r\n Departure / Arrival\r\n \r\n \r\n \r\n {{ info.status }}\r\n \r\n Past Visits\r\n \r\n \r\n Departure / Arrival\r\n \r\n \r\n \r\n {{ info.pastVisits }}\r\n \r\n \r\n \r\n Visits to {{ fboName }}\r\n \r\n \r\n \r\n {{ info.visitsToMyFbo }}\r\n \r\n \r\n \r\n Visit to {{ fboName }}?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Percent of Visits\r\n \r\n \r\n \r\n {{ info.percentOfVisits | percent }}\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { Router } from '@angular/router';\r\nimport {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from 'src/app/shared/components/table-settings/table-settings.component';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvent from '../../../constants/sharedEvents';\r\nimport { FbosService } from '../../../services/fbos.service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\nimport { csvFileOptions, GridBase } from 'src/app/services/tables/GridBase';\r\nimport {\r\n SelectedDateFilter,\r\n} from 'src/app/shared/components/preset-date-filter/preset-date-filter.component';\r\nimport { ReportFilterItems } from '../analytics-report-popup/report-filters/report-filters.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-analytics-companies-quotes-deal',\r\n styleUrls: ['./analytics-companies-quotes-deal-table.component.scss'],\r\n templateUrl: './analytics-companies-quotes-deal-table.component.html',\r\n})\r\nexport class AnalyticsCompaniesQuotesDealTableComponent\r\n extends GridBase\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n icao: string;\r\n fbo: string;\r\n icaoChangedSubscription: any;\r\n chartName = 'companies-quotes-deal-table';\r\n tableLocalStorageKey: string;\r\n columns: ColumnType[];\r\n\r\n dataLength = 0;\r\n\r\n csvFileOptions: csvFileOptions = {\r\n fileName: 'Customer Statistics.csv',\r\n sheetName: 'Customer Statistics',\r\n };\r\n\r\n selectedDateFilter: SelectedDateFilter;\r\n hiddenFilters: ReportFilterItems[] = [ReportFilterItems.icaoDropDown, ReportFilterItems.isCommercialAircraft];\r\n\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private fbosService: FbosService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private router: Router,\r\n private tableSettingsDialog: MatDialog,\r\n ) {\r\n super();\r\n this.icao = this.sharedService.currentUser.icao;\r\n this.initColumns();\r\n }\r\n\r\n async ngOnInit() {\r\n this.fbosService\r\n .get({ oid: this.sharedService.currentUser.fboId })\r\n .subscribe((data: any) => {\r\n this.fbo = data.fbo;\r\n this.initColumns();\r\n });\r\n\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n\r\n this.saveSettings();\r\n });\r\n\r\n this.refreshData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.icaoChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvent.icaoChangedEvent) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n if (this.icaoChangedSubscription) {\r\n this.icaoChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n get visibleColumns() {\r\n return (\r\n this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id) || []\r\n );\r\n }\r\n get filteredColumns() {\r\n let hiddenColumns: string[] = [\r\n 'directOrders',\r\n 'conversionRate',\r\n 'conversionRateTotal',\r\n 'totalOrders',\r\n 'customerBusiness',\r\n 'airportVisits',\r\n ];\r\n return this.initialColumns.filter((column) => {\r\n return !hiddenColumns.includes(column.id);\r\n });\r\n }\r\n get initialColumns(): ColumnType[]{\r\n return [\r\n {\r\n id: 'company',\r\n name: 'Company',\r\n },\r\n {\r\n id: 'directOrders',\r\n name: 'Direct Orders',\r\n },\r\n {\r\n id: 'companyQuotesTotal',\r\n name: 'Number of Quotes',\r\n },\r\n {\r\n id: 'conversionRate',\r\n name: 'Conversion Rate',\r\n },\r\n {\r\n id: 'conversionRateTotal',\r\n name: 'Conversion Rate (Total)',\r\n },\r\n {\r\n id: 'totalOrders',\r\n name: `Total Orders at ${this.fbo}`,\r\n },\r\n {\r\n id: 'airportOrders',\r\n name: `Total Orders at ${this.icao}`,\r\n },\r\n {\r\n id: 'customerBusiness',\r\n name: \"% of Customer's Business\",\r\n },\r\n {\r\n id: 'lastPullDate',\r\n name: `${this.icao} Last Quoted`,\r\n sort: 'desc',\r\n },\r\n {\r\n id: 'airportVisits',\r\n name: `Arrivals`,\r\n },\r\n {\r\n id: 'visitsToFbo',\r\n name: `Visits to ${this.fbo}`,\r\n },\r\n {\r\n id: 'percentVisits',\r\n name: `% of visits to ${this.fbo}`,\r\n },\r\n ];\r\n }\r\n initColumns() {\r\n this.tableLocalStorageKey = `analytics-companies-quotes-deal-${this.sharedService.currentUser.fboId}`;\r\n this.columns = this.getClientSavedColumns(\r\n this.tableLocalStorageKey,\r\n this.initialColumns\r\n );\r\n }\r\n\r\n fetchData(startDate: Date, endDate: Date, icao?: string) {\r\n return this.fuelreqsService.getCompaniesQuotingDealStatistics(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n startDate,\r\n endDate,\r\n icao\r\n );\r\n }\r\n\r\n refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n\r\n refreshData() {\r\n let queryIcao =\r\n this.icao != this.sharedService.currentUser.icao ? this.icao : null;\r\n let endDate = this.getEndOfDayTime(this.filterEndDate, true);\r\n let startDate = this.getStartOfDayTime(this.filterStartDate, true);\r\n\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fetchData(startDate, endDate, queryIcao).subscribe(\r\n (data: any) => {\r\n this.dataSource.data = data;\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'lastPullDate':\r\n if (item[property] === 'N/A') {\r\n if (this.sort.direction === 'asc') {\r\n return new Date(8640000000000000);\r\n } else {\r\n return new Date(-8640000000000000);\r\n }\r\n }\r\n return new Date(item[property]);\r\n default:\r\n return item[property];\r\n }\r\n };\r\n\r\n this.dataSource.sort = this.sort;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.paginator = this.paginator;\r\n\r\n this.refreshSort();\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n CustomerAnalitycs(element: any) {\r\n this.router.navigate(['/default-layout/customers', element.oid], {\r\n state: { tab: 3 },\r\n });\r\n }\r\n\r\n exportCsv() {\r\n let computePropertyFnc = (item: any[], id: string): any => {\r\n if (id == 'company') return item[id];\r\n else return null;\r\n };\r\n this.exportCsvFile(\r\n this.columns,\r\n this.csvFileOptions.fileName,\r\n this.csvFileOptions.sheetName,\r\n computePropertyFnc\r\n );\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.refreshSort();\r\n this.saveSettings();\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n changeIcaoFilter($event: string) {\r\n this.icao = $event;\r\n this.setColumns();\r\n this.refreshData();\r\n }\r\n applyPresetDateFilter(filter: SelectedDateFilter) {\r\n this.filterEndDate = filter.limitDate;\r\n this.filterStartDate = filter.offsetDate;\r\n this.refreshData();\r\n }\r\n private setColumns(){\r\n this.columns = (this.icao == this.sharedService.currentUser.icao) ? this.initialColumns : this.filteredColumns;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ info.company }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.directOrders }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.companyQuotesTotal }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.conversionRate }}%\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.conversionRateTotal }}%\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.totalOrders }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.airportOrders }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.customerBusiness }}%\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.lastPullDate }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.airportVisits }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.visitsToFbo }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ info.percentVisits / 100 | percent }}\r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n Company\r\n \r\n \r\n \r\n \r\n \r\n Direct Orders\r\n \r\n \r\n \r\n \r\n \r\n Number of Quotes\r\n \r\n \r\n \r\n \r\n \r\n Conversion Rate (Directs)\r\n \r\n \r\n \r\n \r\n \r\n Conversion Rate (Total)\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Total Orders at
\r\n
{{ fbo }}
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Total Orders at {{ icao }}\r\n \r\n \r\n \r\n \r\n \r\n % of Customer's Business\r\n \r\n \r\n \r\n \r\n \r\n {{ icao }} Last Quoted\r\n \r\n \r\n \r\n \r\n \r\n Arrivals\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
Visits to
\r\n
{{ fbo }}
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
% of visits to
\r\n
{{ fbo }}
\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 { MatButtonToggleChange } from '@angular/material/button-toggle';\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-analytics-customer-breakdown',\r\n styleUrls: ['./analytics-customer-breakdown-chart.component.scss'],\r\n templateUrl: './analytics-customer-breakdown-chart.component.html',\r\n})\r\nexport class AnalyticsCustomerBreakdownChartComponent implements OnInit {\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n\r\n // Public Members\r\n public chartName = 'customer-breakdown-chart';\r\n public totalOrdersData: any[];\r\n public chartType: string;\r\n public colorScheme = {\r\n domain: [\r\n '#a8385d',\r\n '#7aa3e5',\r\n '#a27ea8',\r\n '#aae3f5',\r\n '#adcded',\r\n '#a95963',\r\n '#8796c0',\r\n '#7ed3ed',\r\n '#50abcc',\r\n '#ad6886',\r\n ],\r\n };\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n }\r\n\r\n ngOnInit() {\r\n this.chartType = 'order';\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getFBOCustomersBreakdown(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.oid,\r\n this.filterStartDate,\r\n this.filterEndDate,\r\n this.chartType\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrdersData = this.switchDataType(data);\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n public changeType(event: MatButtonToggleChange) {\r\n this.chartType = event.value;\r\n this.totalOrdersData = this.switchDataType(this.totalOrdersData);\r\n }\r\n\r\n private switchDataType(data: string[]) {\r\n return _.map(data, (item: any) => {\r\n let newItem: any;\r\n if (this.chartType === 'order') {\r\n newItem = _.assign({}, item, { value: item.orders });\r\n } else {\r\n newItem = _.assign({}, item, { value: item.volume });\r\n }\r\n return newItem;\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n Orders\r\n Volume\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { FbosService } from 'src/app/services/fbos.service';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-analytics-fuel-vendor-source',\r\n styleUrls: ['./analytics-fuel-vendor-source-chart.component.scss'],\r\n templateUrl: './analytics-fuel-vendor-source-chart.component.html',\r\n})\r\nexport class AnalyticsFuelVendorSourceChartComponent implements OnInit {\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n\r\n // Public Members\r\n public fbo = '';\r\n public chartName = 'fuel-vendor-sources-chart';\r\n public totalOrdersData: any[];\r\n public colorScheme = {\r\n domain: [\r\n '#a8385d',\r\n '#7aa3e5',\r\n '#a27ea8',\r\n '#aae3f5',\r\n '#adcded',\r\n '#a95963',\r\n '#8796c0',\r\n '#7ed3ed',\r\n '#50abcc',\r\n '#ad6886',\r\n ],\r\n };\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private fbosService: FbosService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n this.fbosService\r\n .get({ oid: this.sharedService.currentUser.fboId })\r\n .subscribe((data: any) => {\r\n this.fbo = data.fbo;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getFuelVendorSources(\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrdersData = data;\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \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 { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\nimport { AnatylticsReports, analyticsReports } from '../analytics-activity-reports/analytics-activity-reports.component';\r\nimport { AnaliticsReportType } from '../analytics-report-popup/analytics-report-popup.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-analytics-home',\r\n styleUrls: ['./analytics-home.component.scss'],\r\n templateUrl: './analytics-home.component.html',\r\n})\r\nexport class AnalyticsHomeComponent implements OnInit {\r\n public pageTitle = 'Analytics';\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n public pastThirtyDaysStartDate: Date;\r\n public tailNumbers: any[] = [];\r\n public authenticatedIcao: string = '';\r\n public selectedRerport: AnatylticsReports;\r\n\r\n constructor(\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private sharedService: SharedService,\r\n private cdr: ChangeDetectorRef,\r\n private route: ActivatedRoute\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n this.pastThirtyDaysStartDate = new Date(\r\n moment().add(-30, 'days').format('MM/DD/YYYY')\r\n );\r\n \r\n this.authenticatedIcao = this.sharedService.currentUser.icao;\r\n }\r\n\r\n routeSubscription: Subscription;\r\n\r\n ngOnInit() {\r\n this.getAircrafts();\r\n\r\n var isSingleSourceFbo: boolean = JSON.parse(\r\n this.sharedService\r\n .getCurrentUserPropertyValue(\r\n localStorageAccessConstant.isSingleSourceFbo\r\n )\r\n );\r\n\r\n this.routeSubscription = this.route.queryParams.subscribe(params => {\r\n const reportType = params['report'] as AnaliticsReportType;\r\n if(reportType == AnaliticsReportType.LostToCompetition && !isSingleSourceFbo){\r\n this.openReport(analyticsReports[AnaliticsReportType.LostToCompetition]);\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.routeSubscription?.unsubscribe();\r\n }\r\n getAircrafts() {\r\n this.customerAircraftsService\r\n .getAircraftsListByGroupAndFbo(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe((tailNumbers: any[]) => {\r\n this.tailNumbers = tailNumbers;\r\n });\r\n }\r\n openReport(reportType: AnatylticsReports) {\r\n this.selectedRerport = null;\r\n this.cdr.detectChanges();\r\n this.selectedRerport = reportType;\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\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 { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvent from '../../../constants/sharedEvents';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-analytics-market-share-fbo-airport',\r\n styleUrls: ['./analytics-market-share-fbo-airport-chart.component.scss'],\r\n templateUrl: './analytics-market-share-fbo-airport-chart.component.html',\r\n})\r\nexport class AnalyticsMarketShareFboAirportChartComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n\r\n // Public Members\r\n public chartName = 'market-share-fbo-airport-chart';\r\n public totalOrdersData: any[];\r\n public icao: string;\r\n public icaoChangedSubscription: any;\r\n public colorScheme = {\r\n domain: [\r\n '#a8385d',\r\n '#7aa3e5',\r\n '#a27ea8',\r\n '#aae3f5',\r\n '#adcded',\r\n '#a95963',\r\n '#8796c0',\r\n '#7ed3ed',\r\n '#50abcc',\r\n '#ad6886',\r\n ],\r\n };\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.icaoChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvent.icaoChangedEvent) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.icaoChangedSubscription) {\r\n this.icaoChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getMarketShareFboAirport(\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrdersData = data;\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \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 * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-analytics-orders-over-time',\r\n styleUrls: ['./analytics-orders-over-time-chart.component.scss'],\r\n templateUrl: './analytics-orders-over-time-chart.component.html',\r\n})\r\nexport class AnalyticsOrdersOverTimeChartComponent implements OnInit {\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n // Public Members\r\n public chartName = 'orders-over-time-chart';\r\n public totalOrdersData: any[];\r\n public colorScheme = {\r\n domain: [\r\n '#a8385d',\r\n '#7aa3e5',\r\n '#a27ea8',\r\n '#aae3f5',\r\n '#adcded',\r\n '#a95963',\r\n '#8796c0',\r\n '#7ed3ed',\r\n '#50abcc',\r\n '#ad6886',\r\n ],\r\n };\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getOrders(\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrdersData = data;\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \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 * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-analytics-orders-quote',\r\n styleUrls: ['./analytics-orders-quote-chart.component.scss'],\r\n templateUrl: './analytics-orders-quote-chart.component.html',\r\n})\r\nexport class AnalyticsOrdersQuoteChartComponent implements OnInit {\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n // Public Members\r\n public chartName = 'orders-quote-chart';\r\n public ordersQuoteData: any[];\r\n public dollarSumData: any[];\r\n public colorScheme = {\r\n domain: [\r\n '#a8385d',\r\n '#7aa3e5',\r\n '#a27ea8',\r\n '#aae3f5',\r\n '#adcded',\r\n '#a95963',\r\n '#8796c0',\r\n '#7ed3ed',\r\n '#50abcc',\r\n '#ad6886',\r\n ],\r\n };\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getQuotesAndOrders(\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.ordersQuoteData = data[0];\r\n this.dollarSumData = data[1];\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\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 {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { CustomersListType } from 'src/app/models';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { AnatylticsReports } from '../analytics-activity-reports/analytics-activity-reports.component';\r\nimport {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n} from '@angular/animations';\r\nimport { MissedOrdersGridComponent } from '../../missed-orders/missedorders-grid/missedorders-grid.component';\r\nimport { GroupAnalyticsIntraNetworkVisitsReportComponent } from '../../group-analytics/group-analytics-intra-network-visits-report/group-analytics-intra-network-visits-report.component';\r\nimport { AnalyticsAirportArrivalsDepaturesComponent } from '../analytics-airport-arrivals-depatures/analytics-airport-arrivals-depatures.component';\r\nimport { AnalyticsCompaniesQuotesDealTableComponent } from '../analytics-companies-quotes-deal-table/analytics-companies-quotes-deal-table.component';\r\nimport { CustomerCaptureRateComponent } from '../customer-capture-rate/customer-capture-rate.component';\r\n\r\nexport enum AnaliticsReportType {\r\n CustomerStatistics,\r\n ArrivalsDepartures,\r\n FBONetworkArrivalDepartures,\r\n LostToCompetition,\r\n FuelerLinxCustomerCaptureRate,\r\n}\r\n\r\n@Component({\r\n selector: 'app-analytics-report-popup',\r\n templateUrl: './analytics-report-popup.component.html',\r\n styleUrls: ['./analytics-report-popup.component.scss'],\r\n animations: [\r\n trigger('fadeInOut', [\r\n state('in', style({ opacity: 1 })),\r\n transition(':enter', [style({ opacity: 0 }), animate(300)]),\r\n transition(':leave', [animate(300, style({ opacity: 0 }))]),\r\n ]),\r\n ],\r\n})\r\nexport class AnalyticsReportPopupComponent implements OnInit {\r\n @Input() report: AnatylticsReports;\r\n @Output() onClose: EventEmitter = new EventEmitter();\r\n\r\n\r\n @ViewChild('customerStatitics', { static: false })\r\n customerStatitics: AnalyticsCompaniesQuotesDealTableComponent;\r\n @ViewChild('airportArrivalsDepartures', { static: false })\r\n airportArrivalsDepartures: AnalyticsAirportArrivalsDepaturesComponent;\r\n @ViewChild('fboNetworkArrivalsDepartures', { static: false })\r\n fboNetworkArrivalsDepartures: GroupAnalyticsIntraNetworkVisitsReportComponent;\r\n @ViewChild('missedOrders', { static: false })\r\n missedOrders: MissedOrdersGridComponent;\r\n @ViewChild('customerCaptureRate', { static: false })\r\n customerCaptureRate: CustomerCaptureRateComponent;\r\n\r\n analiticsReportTypes = AnaliticsReportType;\r\n\r\n public isPopUpOpen: boolean = false;\r\n public isReportVisible: Record;\r\n public customers: CustomersListType[] = [];\r\n\r\n constructor(\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private sharedService: SharedService,\r\n private renderer: Renderer2\r\n ) {\r\n this.isReportVisible = {\r\n [AnaliticsReportType.CustomerStatistics]: false,\r\n [AnaliticsReportType.ArrivalsDepartures]: false,\r\n [AnaliticsReportType.FBONetworkArrivalDepartures]: false,\r\n [AnaliticsReportType.LostToCompetition]: false,\r\n [AnaliticsReportType.FuelerLinxCustomerCaptureRate]: false,\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n this.getCustomersList();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(!changes.report?.currentValue || changes.report?.currentValue == null) {\r\n this.closePopUp();\r\n return;\r\n }\r\n for (const key in this.isReportVisible) {\r\n if (key == changes.report?.currentValue?.type) {\r\n this.isPopUpOpen = true;\r\n this.isReportVisible[key] = true;\r\n this.renderer.addClass(document.body, 'no-scroll');\r\n } else this.isReportVisible[key] = false;\r\n }\r\n }\r\n getCustomersList() {\r\n this.customerInfoByGroupService\r\n .getCustomersListByGroupAndFbo(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe((customers: any[]) => {\r\n this.customers = customers;\r\n });\r\n }\r\n exportReport() {\r\n let reportType = this.report.type;\r\n switch (reportType) {\r\n case AnaliticsReportType.CustomerStatistics:\r\n this.customerStatitics.exportCsv();\r\n break;\r\n case AnaliticsReportType.ArrivalsDepartures:\r\n this.airportArrivalsDepartures.exportCsv();\r\n break;\r\n case AnaliticsReportType.FBONetworkArrivalDepartures:\r\n this.fboNetworkArrivalsDepartures.exportCsv();\r\n break;\r\n case AnaliticsReportType.LostToCompetition:\r\n this.missedOrders.exportCsv();\r\n break;\r\n case AnaliticsReportType.FuelerLinxCustomerCaptureRate:\r\n this.customerCaptureRate.exportCsv();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n closePopUp() {\r\n this.isPopUpOpen = false;\r\n this.renderer.removeClass(document.body, 'no-scroll');\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n {{ report?.title }}\r\n \r\n close\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \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\r\n \r\n
\r\n
\r\n \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AcukwikairportsService } from 'src/app/services/acukwikairports.service';\r\nimport { PresetDateFilterEnum, SelectedDateFilter } from 'src/app/shared/components/preset-date-filter/preset-date-filter.component';\r\nimport * as moment from 'moment';\r\nexport interface CustomIcaoList{\r\n value: string[];\r\n isStandAlone: boolean;\r\n}\r\nexport enum ReportFilterItems{\r\n icaoDropDown,\r\n presetdateFilter,\r\n searchInput,\r\n isCommercialAircraft\r\n}\r\n@Component({\r\n selector: 'app-report-filters',\r\n templateUrl: './report-filters.component.html',\r\n styleUrls: ['./report-filters.component.scss'],\r\n})\r\nexport class ReportFiltersComponent implements OnInit {\r\n @Input() icao: string = null;\r\n @Input() dataSource: MatTableDataSource = new MatTableDataSource([]);\r\n @Input() selectedDateFilter: SelectedDateFilter;\r\n @Input() hiddenFilters: ReportFilterItems[];\r\n @Input() customIcaoList: CustomIcaoList = null;\r\n\r\n @Output() onChangeIcaoFilter: EventEmitter = new EventEmitter();\r\n @Output() onDateChange: EventEmitter = new EventEmitter();\r\n @Output() commercialAicraftToogle: EventEmitter = new EventEmitter();\r\n\r\n\r\n airportsICAO: string[] = [];\r\n nearbyMiles: number = 150;\r\n filterStartDate: Date;\r\n filterEndDate: Date;\r\n reportFilterItems = ReportFilterItems;\r\n\r\n constructor(private acukwikairportsService: AcukwikairportsService) {}\r\n\r\n async ngOnInit() {\r\n if(!this.icao) return;\r\n this.airportsICAO = (\r\n await this.acukwikairportsService\r\n .getNearByAcukwikAirportsByICAO(this.icao, this.nearbyMiles)\r\n .toPromise()\r\n ).map((data) => {\r\n return data.icao;\r\n });\r\n\r\n if(this.customIcaoList) {\r\n this.setCustomIcaoList(this.customIcaoList);\r\n }\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.customIcaoList && changes.customIcaoList.currentValue) {\r\n this.setCustomIcaoList(changes.customIcaoList.currentValue);\r\n }\r\n\r\n if(changes.SelectedDateFilter && changes.SelectedDateFilter.currentValue) {\r\n this.filterStartDate = changes.SelectedDateFilter.currentValue.offsetDate;\r\n this.filterEndDate = changes.SelectedDateFilter.currentValue.limitDate;\r\n }\r\n\r\n }\r\n commercialAicraftToogleChange($event: any) {\r\n this.commercialAicraftToogle.emit($event.checked);\r\n }\r\n changeIcaoFilter($event: string) {\r\n this.onChangeIcaoFilter.emit($event);\r\n }\r\n applyPresetDateFilter(filter: SelectedDateFilter) {\r\n this.selectedDateFilter = filter;\r\n this.onDateChange.emit(filter);\r\n }\r\n applyCustomDateFilter() {\r\n this.selectedDateFilter.selectedFilter = null;\r\n this.onDateChange.emit(this.selectedDateFilter);\r\n }\r\n isFilterHidden(filter: ReportFilterItems) {\r\n return this.hiddenFilters?.includes(filter);\r\n }\r\n private setCustomIcaoList(customIcaoList: CustomIcaoList) {\r\n if(customIcaoList.isStandAlone) {\r\n this.airportsICAO = customIcaoList.value;\r\n }else{\r\n this.airportsICAO = this.airportsICAO.concat(customIcaoList.value);\r\n }\r\n }\r\n clearFilters(){\r\n this.filterStartDate = new Date(\r\n moment().add(-1, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n this.selectedDateFilter = {\r\n selectedFilter: PresetDateFilterEnum.oneMonth,\r\n offsetDate: this.filterStartDate,\r\n limitDate: this.filterEndDate,\r\n }\r\n this.onDateChange.emit(this.selectedDateFilter);\r\n\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Hide Commercial Flights\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \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 { MatSliderChange } from '@angular/material/slider';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-analytics-volumes-nearby-airport',\r\n styleUrls: ['./analytics-volumes-nearby-airport-chart.component.scss'],\r\n templateUrl: './analytics-volumes-nearby-airport-chart.component.html',\r\n})\r\nexport class AnalyticsVolumesNearbyAirportChartComponent implements OnInit {\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n\r\n // Public Members\r\n public chartName: 'volumes-nearby-airport-chart';\r\n public totalOrdersData: any[];\r\n public mile = 50;\r\n public colorScheme = {\r\n domain: [\r\n '#a8385d',\r\n '#7aa3e5',\r\n '#a27ea8',\r\n '#aae3f5',\r\n '#adcded',\r\n '#a95963',\r\n '#8796c0',\r\n '#7ed3ed',\r\n '#50abcc',\r\n '#ad6886',\r\n ],\r\n };\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getVolumesNearbyAirport(\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate,\r\n this.mile\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrdersData = data;\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n public formatLabel(value: number) {\r\n return value + 'mi';\r\n }\r\n\r\n public changeMile(event: MatSliderChange) {\r\n this.mile = event.value;\r\n this.refreshData();\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\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 { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { GridBase, csvFileOptions } from 'src/app/services/tables/GridBase';\r\nimport { ReportFilterItems } from '../analytics-report-popup/report-filters/report-filters.component';\r\nimport { SelectedDateFilter } from 'src/app/shared/components/preset-date-filter/preset-date-filter.component';\r\nimport { ColumnType } from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport { FuelreqsService } from 'src/app/services/fuelreqs.service';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { CustomerCaptureRateReport } from 'src/app/models/customer-capture-rate-report';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-customer-capture-rate',\r\n templateUrl: './customer-capture-rate.component.html',\r\n styleUrls: ['./customer-capture-rate.component.scss'],\r\n})\r\nexport class CustomerCaptureRateComponent extends GridBase implements OnInit {\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n\r\n data: CustomerCaptureRateReport[];\r\n groupId: number;\r\n fboId: number;\r\n fbo: string;\r\n icao: string;\r\n reportHiddenItems: ReportFilterItems[] = [ReportFilterItems.icaoDropDown, ReportFilterItems.isCommercialAircraft];\r\n tableLocalStorageKey: string;\r\n\r\n chartName = 'customer-capture-rate-table';\r\n\r\n csvFileOptions: csvFileOptions = {\r\n fileName: 'Customer Capture Rate',\r\n sheetName: 'Customer Capture Rate ',\r\n };\r\n\r\n columns: ColumnType[] = [\r\n {\r\n id: 'company',\r\n name: 'Company',\r\n index: 0,\r\n },\r\n {\r\n id: 'airportOrders',\r\n name: 'Total Orders at airport',\r\n index: 1,\r\n },\r\n {\r\n id: 'totalOrders',\r\n name: `Total Orders at FBO`,\r\n index: 2,\r\n },\r\n {\r\n id: 'percentCustomerBusiness',\r\n name: \"% of Customer's Business\",\r\n index: 3,\r\n },\r\n ];\r\n\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private tableSettingsDialog: MatDialog,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n super();\r\n this.tableLocalStorageKey = `analytics-customer-capture-rate-${this.sharedService.currentUser.fboId}`;\r\n this.initColumns();\r\n this.groupId = Number(\r\n this.sharedService.getCurrentUserPropertyValue(\r\n localStorageAccessConstant.groupId\r\n )\r\n );\r\n this.fboId = Number(\r\n this.sharedService.getCurrentUserPropertyValue(\r\n localStorageAccessConstant.fboId\r\n )\r\n );\r\n this.fbo = this.sharedService.getCurrentUserPropertyValue(\r\n localStorageAccessConstant.fbo\r\n );\r\n this.icao = this.sharedService.getCurrentUserPropertyValue(\r\n localStorageAccessConstant.icao\r\n );\r\n\r\n this.columns = this.getClientSavedColumns(\r\n this.tableLocalStorageKey,\r\n this.columns\r\n );\r\n\r\n this.refreshData();\r\n }\r\n ngOnInit(): void {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n\r\n this.saveSettings(this.tableLocalStorageKey, this.columns);\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n initColumns() {\r\n this.columns = this.getClientSavedColumns(\r\n this.tableLocalStorageKey,\r\n this.columns\r\n );\r\n }\r\n refreshData() {\r\n let endDate = this.getEndOfDayTime(this.filterEndDate, true);\r\n let startDate = this.getStartOfDayTime(this.filterStartDate, true);\r\n\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fuelreqsService\r\n .getCustomerCaptureRate(\r\n this.groupId,\r\n this.fboId,\r\n startDate,\r\n endDate\r\n )\r\n .subscribe(\r\n (data: CustomerCaptureRateReport[]) => {\r\n this.dataSource.data = data;\r\n this.dataSource.sort = this.sort;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.paginator = this.paginator;\r\n this.applyDefaultOrderingForCsvExport();\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n // Custom sorting function\r\n private getPropertyValue(item: any, property: string): any {\r\n const properties = property.split('.');\r\n return properties.reduce((obj, prop) => obj && obj[prop], item);\r\n }\r\n exportCsv() {\r\n this.applyDefaultOrderingForCsvExport();\r\n let computePropertyFnc = (item: any[], id: string): any => {\r\n if (id == 'percentCustomerBusiness') {\r\n let value = item[id] == null ? '' : item[id] + '%';\r\n\r\n if(item[id] == null) return { v: value };\r\n\r\n } else {\r\n return { v: item[id] };\r\n }\r\n };\r\n\r\n this.exportCsvFile(\r\n this.columns,\r\n this.csvFileOptions.fileName,\r\n this.csvFileOptions.sheetName,\r\n computePropertyFnc\r\n );\r\n }\r\n applyDefaultOrderingForCsvExport() {\r\n const data = this.dataSource.data.slice();\r\n\r\n if (!this.sort.active || this.sort.direction === '') {\r\n this.dataSource.data = data;\r\n }\r\n\r\n this.dataSource.data = data.sort((a, b) => {\r\n const firstLevel = 'percentCustomerBusiness';\r\n const valueA = this.getPropertyValue(a, firstLevel);\r\n const valueB = this.getPropertyValue(b, firstLevel);\r\n\r\n if (valueA < valueB) {\r\n return this.sort.direction === 'asc' ? -1 : 1;\r\n } else if (valueA > valueB) {\r\n return this.sort.direction === 'asc' ? 1 : -1;\r\n }\r\n\r\n // If values at the first level are equal, go to the next level\r\n const secondLevel = 'totalOrders';\r\n const secondLevelA = this.getPropertyValue(a, secondLevel);\r\n const secondLevelB = this.getPropertyValue(b, secondLevel);\r\n\r\n if (secondLevelA < secondLevelB) {\r\n return this.sort.direction === 'asc' ? -1 : 1;\r\n } else if (secondLevelA > secondLevelB) {\r\n return this.sort.direction === 'asc' ? 1 : -1;\r\n }\r\n\r\n // If values at the second level are equal, go to the next level\r\n const thirdLevel = 'airportOrders';\r\n const thirdLevelA = this.getPropertyValue(a, thirdLevel);\r\n const thirdLevelB = this.getPropertyValue(b, thirdLevel);\r\n\r\n if (thirdLevelA < thirdLevelB) {\r\n return this.sort.direction === 'asc' ? -1 : 1;\r\n } else if (thirdLevelA > thirdLevelB) {\r\n return this.sort.direction === 'asc' ? 1 : -1;\r\n }\r\n\r\n const fouthLevel = 'company';\r\n const fouthLevelA = this.getPropertyValue(a, fouthLevel);\r\n const fouthLevelB = this.getPropertyValue(b, fouthLevel);\r\n\r\n if (fouthLevelA < fouthLevelB) {\r\n return this.sort.direction === 'asc' ? -1 : 1;\r\n } else if (fouthLevelA > fouthLevelB) {\r\n return this.sort.direction === 'asc' ? 1 : -1;\r\n }\r\n\r\n // If values at the third level are equal, return 0\r\n return 0;\r\n });\r\n }\r\n applyPresetDateFilter(filter: SelectedDateFilter) {\r\n this.filterEndDate = filter.limitDate;\r\n this.filterStartDate = filter.offsetDate;\r\n this.refreshData();\r\n }\r\n openSettings() {\r\n var _this = this;\r\n this.openSettingsDialog(\r\n this.tableSettingsDialog,\r\n this.columns,\r\n function (result) {\r\n _this.columns = result;\r\n _this.refreshSort(_this.sort, _this.columns);\r\n _this.saveSettings(this.tableLocalStorageKey, this.columns);\r\n }\r\n );\r\n }\r\n get visibleColumns() {\r\n return (\r\n this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id) || []\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n Company\r\n \r\n \r\n \r\n {{ info.company }}\r\n \r\n \r\n \r\n
\r\n
Total Orders at
\r\n
{{ fbo }}
\r\n
\r\n \r\n
\r\n
\r\n {{ info.totalOrders }}\r\n \r\n \r\n \r\n Total Orders at {{ icao }}\r\n \r\n \r\n \r\n {{ info.airportOrders }}\r\n \r\n \r\n \r\n % of Customer's Business\r\n \r\n \r\n \r\n {{ info.percentCustomerBusiness }}%\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forEach } from 'lodash';\r\nimport {\r\n ColumnType,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'boxName',\r\n name: 'Antenna Name',\r\n },\r\n {\r\n id: 'status',\r\n name: 'Status'\r\n },\r\n {\r\n id: 'lastUpdateRaw',\r\n name: 'Last Update Raw',\r\n },\r\n {\r\n id: 'lastUpdateCurated',\r\n name: 'Last Update Curated',\r\n },\r\n {\r\n id: 'fbolinxAccount',\r\n name: 'FBOlinx Account',\r\n }\r\n];\r\n\r\n@Component({\r\n selector: 'app-antenna-status-grid',\r\n styleUrls: ['./antenna-status-grid.component.scss'],\r\n templateUrl: './antenna-status-grid.component.html',\r\n})\r\nexport class AntennaStatusGridComponent implements OnInit {\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @Input() antennaStatusData: any[];\r\n @Input() antennaStatusGridData: any[];\r\n\r\n tableLocalStorageKey = 'antenna-status-table-settings';\r\n\r\n antennaStatusDataSource: any = null;\r\n columns: ColumnType[] = [];\r\n\r\n constructor(private router: Router, private sharedService: SharedService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (localStorage.getItem(this.tableLocalStorageKey)) {\r\n this.columns = JSON.parse(\r\n localStorage.getItem(this.tableLocalStorageKey)\r\n );\r\n } else {\r\n this.columns = initialColumns;\r\n }\r\n\r\n this.refreshAntennaStatusDataSource();\r\n }\r\n\r\n getTableColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id);\r\n }\r\n\r\n private refreshAntennaStatusDataSource() {\r\n if (!this.antennaStatusDataSource) {\r\n this.antennaStatusDataSource = new MatTableDataSource();\r\n }\r\n\r\n this.antennaStatusDataSource.data = this.antennaStatusGridData;\r\n this.antennaStatusDataSource.sort = this.sort;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Antenna Name\r\n \r\n {{ antenna.boxName }}\r\n \r\n Status\r\n \r\n {{ antenna.status }}\r\n \r\n Last Update from Raw\r\n \r\n
\r\n {{ antenna.lastUpdateRaw }}\r\n
\r\n
\r\n
Last Seen in FBOlinx Curated
\r\n
\r\n {{antenna.lastUpdateCurated}}\r\n \r\n
FBOlinx Account
\r\n
\r\n {{antenna.fbolinxAccount}}\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { AirportWatchService } from '../../../services/airportwatch.service';\r\n\r\n// Models\r\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\r\nimport { AntennaStatusGridViewmodel } from '../../../models/antenna-status/antenna-status-grid-viewmodel';\r\n\r\n\r\n@Component({\r\n selector: 'app-antenna-status-home',\r\n styleUrls: ['./antenna-status-home.component.scss'],\r\n templateUrl: './antenna-status-home.component.html',\r\n})\r\nexport class AntennaStatusHomeComponent implements OnInit {\r\n // Public Members\r\n public pageTitle = 'Antenna Status';\r\n public breadcrumb: any[];\r\n public antennaStatusData: any[];\r\n public antennaStatusGridData: any[];\r\n public antennaStatusGridItem: AntennaStatusGridViewmodel;\r\n public antennaStatusHomeLoaderName: string = 'antenna-status-home-loader';\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private airportWatchService: AirportWatchService\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.loadAntennaStatus();\r\n }\r\n\r\n private loadAntennaStatus() {\r\n this.antennaStatusGridData = null;\r\n this.ngxLoader.startLoader(this.antennaStatusHomeLoaderName);\r\n this.airportWatchService\r\n .getAntennaStatusData()\r\n .subscribe((data: any) => {\r\n this.antennaStatusGridData = data;\r\n this.ngxLoader.stopLoader(this.antennaStatusHomeLoaderName);\r\n });\r\n }\r\n}\r\n","
\r\n
\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 } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { AssociationsService } from '../../../services/associations.service';\r\n\r\n@Component({\r\n selector: 'app-associations-dialog-new-association',\r\n styleUrls: ['./associations-dialog-new-association.component.scss'],\r\n templateUrl: './associations-dialog-new-association.component.html',\r\n})\r\nexport class AssociationsDialogNewAssociationComponent {\r\n type: string;\r\n dataSources: any = {};\r\n data: any = {};\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private associationsService: AssociationsService,\r\n ) {\r\n\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSaveClick(): void {\r\n this.data.oid = 0;\r\n this.associationsService.add(this.data).subscribe((data: any) => {\r\n this.dialogRef.close({\r\n data\r\n });\r\n });\r\n }\r\n}\r\n","

Create New Association

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Add Association\r\n \r\n \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n// Services\r\nimport { AuthenticationService } from '../../../services/security/authentication.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-authtoken',\r\n styleUrls: ['./authtoken.component.scss'],\r\n templateUrl: './authtoken.component.html',\r\n})\r\nexport class AuthtokenComponent {\r\n tokenParam: string;\r\n idParam: string;\r\n\r\n routeSubscription: Subscription;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private authenticationService: AuthenticationService\r\n ) {\r\n // Check for passed in id\r\n //const token = this.route.snapshot.paramMap.get('token');\r\n this.routeSubscription = this.route.queryParamMap.subscribe((params) => {\r\n this.tokenParam = params.get('token');\r\n this.idParam = params.get('id');\r\n });\r\n\r\n if (!this.tokenParam || this.tokenParam === '') {\r\n this.router.navigate(['/']);\r\n } else {\r\n const decodedToken = decodeURIComponent(this.tokenParam);\r\n\r\n this.authenticationService\r\n .getAuthToken(decodedToken)\r\n // .pipe(first())\r\n .subscribe(\r\n (authTokenData) => {\r\n if (authTokenData.success) {\r\n this.authenticationService\r\n .preAuth(authTokenData.authToken)\r\n .subscribe((data) => {\r\n if (data.role === 3 || data.role === 2) {\r\n this.router.navigate([\r\n '/default-layout/fbos/',\r\n ]);\r\n }\r\n else if (this.idParam != \"\" && (data.role == 6 || data.role == 1))\r\n {\r\n this.router.navigate(['/default-layout/fuelreqs'], { queryParams: { id: this.idParam } });\r\n }\r\n else if (data.role == 6) {\r\n this.router.navigate([\r\n '/default-layout/fuelreqs',\r\n ]);\r\n }\r\n else {\r\n this.router.navigate([\r\n '/default-layout/dashboard-fbo-updated/',\r\n ]);\r\n }\r\n });\r\n } else {\r\n this.router.navigate(['/landing-site']);\r\n }\r\n },\r\n () => {\r\n this.router.navigate(['/landing-site']);\r\n }\r\n );\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.routeSubscription?.unsubscribe();\r\n }\r\n}\r\n","
\r\n
Validating your account...
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n// Services\r\nimport { OAuthService } from '../../../services/oauth.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n styleUrls: ['./login.component.scss'],\r\n templateUrl: './login.component.html',\r\n})\r\nexport class LoginComponent implements OnInit {\r\n partner: string;\r\n redirectTo: string;\r\n loginForm: FormGroup;\r\n error: string;\r\n submit: boolean;\r\n\r\n routeSubscription: Subscription;\r\n \r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private oauthService: OAuthService,\r\n private formBuilder: FormBuilder\r\n ) {\r\n this.loginForm = this.formBuilder.group({\r\n password: new FormControl(''),\r\n username: new FormControl(''),\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.routeSubscription =this.route.queryParams.subscribe((params) => {\r\n if (!params.partner || !params.redirectTo) {\r\n this.router.navigate(['/']);\r\n }\r\n this.partner = params.partner;\r\n this.redirectTo = params.redirectTo;\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.routeSubscription?.unsubscribe();\r\n }\r\n public onSubmit() {\r\n if (this.submit) {\r\n return;\r\n }\r\n\r\n this.error = '';\r\n if (this.loginForm.valid) {\r\n this.submit = true;\r\n this.oauthService\r\n .login(\r\n this.loginForm.value.username,\r\n this.loginForm.value.password,\r\n this.partner\r\n )\r\n .subscribe(\r\n (token: any) => {\r\n let tokenQueryString =\r\n 'accessToken=' +\r\n encodeURIComponent(token.accessToken);\r\n if (this.redirectTo.indexOf('?') === -1) {\r\n tokenQueryString = '?' + tokenQueryString;\r\n } else {\r\n tokenQueryString = '&' + tokenQueryString;\r\n }\r\n window.location.href =\r\n this.redirectTo + tokenQueryString;\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n this.error = err;\r\n this.submit = false;\r\n }\r\n );\r\n }\r\n }\r\n}\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 \r\n\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n AbstractControl,\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n} from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { User } from '../../../models/user';\r\n// Services\r\nimport { UserService } from '../../../services/user.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-reset-password',\r\n styleUrls: ['./reset-password.component.scss'],\r\n templateUrl: './reset-password.component.html',\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n token: string;\r\n form: FormGroup;\r\n submit: boolean;\r\n validated: boolean;\r\n validationError: boolean;\r\n error: string;\r\n user: User;\r\n reset: boolean;\r\n\r\n routeSubscription: Subscription;\r\n \r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService,\r\n private formBuilder: FormBuilder\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.routeSubscription = this.route.queryParams.subscribe((params) => {\r\n if (!params.token) {\r\n this.router.navigate(['/']);\r\n }\r\n\r\n this.token = params.token;\r\n this.validated = false;\r\n this.validationError = false;\r\n\r\n this.userService.validateResetPasswordToken(this.token).subscribe(\r\n (user: User) => {\r\n this.form = this.formBuilder.group(\r\n {\r\n confirmPassword: new FormControl(''),\r\n email: new FormControl(user.username),\r\n newPassword: new FormControl(''),\r\n },\r\n {\r\n validators: this.passwordConfirming,\r\n }\r\n );\r\n this.validated = true;\r\n this.user = user;\r\n },\r\n () => {\r\n this.validated = true;\r\n this.validationError = true;\r\n }\r\n );\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.routeSubscription?.unsubscribe();\r\n }\r\n passwordConfirming(c: AbstractControl) {\r\n if (c.get('newPassword').value !== c.get('confirmPassword').value) {\r\n return {\r\n passwordNotMatch: true,\r\n };\r\n }\r\n }\r\n\r\n onSubmit() {\r\n if (this.submit) {\r\n return;\r\n }\r\n\r\n this.error = '';\r\n if (this.form.valid) {\r\n this.submit = true;\r\n this.userService\r\n .resetPassword({\r\n password: this.form.value.newPassword,\r\n resetPasswordToken: this.token,\r\n username: this.user.username,\r\n })\r\n .subscribe(\r\n () => {\r\n this.reset = true;\r\n setTimeout(() => {\r\n this.router.navigate(['/']);\r\n }, 2000);\r\n },\r\n () => {\r\n this.error =\r\n 'Failed to reset the password. Please contact the FBOLinx team!';\r\n this.submit = false;\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {{ error }}\r\n Password does not match\r\n \r\n\r\n \r\n \r\n
\r\n The reset password link is expired!\r\n Password Reset Succeed! Redirecting...\r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-contacts-dialog-confirm-contact-delete',\r\n styleUrls: ['./contact-confirm-delete-modal.component.scss'],\r\n templateUrl: './contact-confirm-delete-modal.component.html',\r\n})\r\nexport class ContactsDialogConfirmContactDeleteComponent {\r\n private contactId = 0;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n if (data) {\r\n this.contactId = data.contactId;\r\n }\r\n }\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n\r\n public saveEdit() {\r\n this.dialogRef.close(this.contactId);\r\n }\r\n}\r\n","

Confirm Contact Removal

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

\r\n Are you sure you want to delete {{ data.email }}?\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n  \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\nimport { ContactsDialogConfirmContactDeleteComponent } from '../contact-confirm-delete-modal/contact-confirm-delete-modal.component';\r\n\r\nexport interface NewContactDialogData {\r\n oid: number;\r\n\r\n firstName: string;\r\n lastName: string;\r\n title: string;\r\n email: string;\r\n phone: string;\r\n extension: string;\r\n mobile: string;\r\n fax: string;\r\n address: string;\r\n city: string;\r\n state: string;\r\n country: string;\r\n primary: boolean;\r\n copyAlerts: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-contacts-dialog-new-contact',\r\n styleUrls: ['./contacts-edit-modal.component.scss'],\r\n templateUrl: './contacts-edit-modal.component.html',\r\n})\r\nexport class ContactsDialogNewContactComponent {\r\n // Masks\r\n phoneMask: any[] = [\r\n '+',\r\n '1',\r\n ' ',\r\n '(',\r\n /[1-9]/,\r\n /\\d/,\r\n /\\d/,\r\n ')',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n '-',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n ];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewContactDialogData,\r\n public dialogContactDeleteRef: MatDialog\r\n ) {}\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n\r\n public ConfirmDelete(data) {\r\n const dialogRef = this.dialogContactDeleteRef.open(\r\n ContactsDialogConfirmContactDeleteComponent,\r\n {\r\n data,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === 'cancel') {\r\n } else if (result.contactId) {\r\n result.toDelete = true;\r\n this.dialogRef.close(result);\r\n }\r\n });\r\n }\r\n}\r\n","

\r\n Contact Information  Delete Contact\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \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 enter a valid email 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 \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n Copy on Distribution\r\n
\r\n
\r\n
\r\n \r\n save\r\n Save Contact\r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contacts-edit',\r\n styleUrls: ['./contacts-edit.component.scss'],\r\n templateUrl: './contacts-edit.component.html',\r\n})\r\nexport class ContactsEditComponent {\r\n @Output() saveEditClicked = new EventEmitter();\r\n @Output() cancelEditClicked = new EventEmitter();\r\n @Input() contactInfo: any;\r\n\r\n // Masks\r\n phoneMask: any[] = [\r\n '+',\r\n '1',\r\n ' ',\r\n '(',\r\n /[1-9]/,\r\n /\\d/,\r\n /\\d/,\r\n ')',\r\n ' ',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n '-',\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n /\\d/,\r\n ];\r\n\r\n constructor() {}\r\n\r\n public saveEdit() {\r\n this.saveEditClicked.emit();\r\n }\r\n\r\n public cancelEdit() {\r\n this.cancelEditClicked.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
General Information
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Copy on Distribution\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n save\r\n Save Contact\r\n \r\n \r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute } from '@angular/router';\r\n/*import FlatfileImporter from 'flatfile-csv-importer';*/\r\nimport * as _ from 'lodash';\r\n\r\nimport { ContactsDialogNewContactComponent } from '../contacts-edit-modal/contacts-edit-modal.component';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { ContactinfobygroupsService } from '../../../services/contactinfobygroups.service';\r\nimport { ContactinfobyfboService } from '../../../services/contactinfobyfbo.service';\r\nimport { CustomercontactsService } from '../../../services/customercontacts.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-contacts-grid',\r\n styleUrls: ['./contacts-grid.component.scss'],\r\n templateUrl: './contacts-grid.component.html',\r\n})\r\nexport class ContactsGridComponent implements OnInit {\r\n @Output() contactDeleted = new EventEmitter();\r\n @Output() newContactClicked = new EventEmitter();\r\n @Output() editContactClicked = new EventEmitter();\r\n @Input() contactsData: Array;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n public currentContactInfoByGroup: any;\r\n contactsDataSource: MatTableDataSource = null;\r\n displayedColumns: string[] = [\r\n 'firstName',\r\n 'lastName',\r\n 'title',\r\n 'email',\r\n 'phone',\r\n 'copyAlerts',\r\n 'delete',\r\n ];\r\n public copyAll = false;\r\n\r\n /*LICENSE_KEY = '9eef62bd-4c20-452c-98fd-aa781f5ac111';*/\r\n\r\n results = '[]';\r\n\r\n /*private importer: FlatfileImporter;*/\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(\r\n public deleteUserDialog: MatDialog,\r\n private contactInfoByGroupsService: ContactinfobygroupsService,\r\n private sharedService: SharedService,\r\n private customerContactsService: CustomercontactsService,\r\n public newContactDialog: MatDialog,\r\n private route: ActivatedRoute,\r\n private contactInfoByFboService: ContactinfobyfboService\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (!this.contactsData) {\r\n return;\r\n }\r\n\r\n const foundedIndex = _.findIndex(\r\n this.contactsData,\r\n (contact) => !contact.copyAlerts\r\n );\r\n this.copyAll = foundedIndex >= 0 ? false : true;\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {});\r\n this.contactsDataSource = new MatTableDataSource(this.contactsData);\r\n this.contactsDataSource.sort = this.sort;\r\n\r\n /*this.initializeImporter();*/\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n // Public Methods\r\n public deleteRecord(record) {\r\n const id = this.route.snapshot.paramMap.get('id');\r\n this.contactInfoByGroupsService\r\n .remove(record.contactInfoByGroupId, this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.customerContactsService\r\n .remove(record.customerContactId, this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n const index = this.contactsData.findIndex(\r\n (d) =>\r\n d.customerContactId === record.customerContactId\r\n ); // find index in your array\r\n this.contactsData.splice(index, 1); // remove element from array\r\n this.contactsDataSource = new MatTableDataSource(\r\n this.contactsData\r\n );\r\n this.contactsDataSource.sort = this.sort;\r\n });\r\n });\r\n }\r\n\r\n public editRecord(record, $event) {\r\n if ($event.target) {\r\n if ($event.target.className.indexOf('mat-slide-toggle') > -1) {\r\n $event.stopPropagation();\r\n return false;\r\n } else {\r\n const clonedRecord = Object.assign({}, record);\r\n this.editContactClicked.emit(clonedRecord);\r\n }\r\n } else {\r\n const clonedRecord = Object.assign({}, record);\r\n this.editContactClicked.emit(clonedRecord);\r\n }\r\n }\r\n\r\n public editContactPopup(record) {\r\n const dialogRef = this.newContactDialog.open(\r\n ContactsDialogNewContactComponent,\r\n {\r\n data: record,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result != undefined && result !== 'cancel') {\r\n if (result.toDelete) {\r\n const id = this.route.snapshot.paramMap.get('id');\r\n this.contactInfoByGroupsService\r\n .remove(record.contactInfoByGroupId, this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.customerContactsService\r\n .remove(record.customerContactId, this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.contactInfoByFboService\r\n .remove(record.contactId)\r\n .subscribe(() => {\r\n const index = this.contactsData.findIndex(\r\n (d) =>\r\n d.customerContactId ===\r\n record.customerContactId\r\n ); // find index in your array\r\n this.contactsData.splice(index, 1); // remove element from array\r\n this.contactsDataSource =\r\n new MatTableDataSource(\r\n this.contactsData\r\n );\r\n this.contactsDataSource.sort = this.sort;\r\n });\r\n });\r\n });\r\n } else {\r\n if (record.firstName) {\r\n this.contactInfoByGroupsService\r\n .get({ oid: record.contactInfoByGroupId })\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.currentContactInfoByGroup = data;\r\n if (this.currentContactInfoByGroup.oid) {\r\n data.email = record.email;\r\n data.firstName = record.firstName;\r\n data.lastName = record.lastName;\r\n data.title = record.title;\r\n data.phone = record.phone;\r\n data.extension = record.extension;\r\n data.mobile = record.mobile;\r\n data.fax = record.fax;\r\n data.address = record.address;\r\n data.city = record.city;\r\n data.state = record.state;\r\n data.country = record.country;\r\n data.primary = record.primary;\r\n\r\n this.contactInfoByGroupsService\r\n .update(\r\n this.currentContactInfoByGroup\r\n )\r\n .subscribe(() => {\r\n this.UpdateCopyAlerts(record);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public newRecord() {\r\n this.newContactClicked.emit();\r\n }\r\n\r\n public UpdateCopyAlertsValue(value) {\r\n if (value.copyAlerts) {\r\n value.copyAlerts = !value.copyAlerts;\r\n } else {\r\n value.copyAlerts = true;\r\n }\r\n const unselectedIndex = _.findIndex(\r\n this.contactsData,\r\n (contact) => !contact.copyAlerts\r\n );\r\n this.copyAll = unselectedIndex >= 0 ? false : true;\r\n\r\n value.groupId = this.sharedService.currentUser.groupId;\r\n\r\n this.UpdateCopyAlerts(value);\r\n }\r\n\r\n public UpdateAllCopyAlertsValues() {\r\n this.copyAll = !this.copyAll;\r\n _.forEach(this.contactsData, (contact) => {\r\n contact.copyAlerts = this.copyAll;\r\n contact.GroupId = this.sharedService.currentUser.groupId;\r\n this.UpdateCopyAlerts(contact);\r\n });\r\n }\r\n\r\n private UpdateCopyAlerts(contact) {\r\n this.contactInfoByFboService.getCustomerContactInfoByFbo(this.sharedService.currentUser.fboId, contact.contactId)\r\n .subscribe((data: any) => {\r\n if (data) {\r\n data.copyAlerts = contact.copyAlerts;\r\n this.contactInfoByFboService\r\n .update(data)\r\n .subscribe((data: any) => { });\r\n }\r\n else {\r\n this.addCustomerInfoByFbo(contact);\r\n }\r\n });\r\n }\r\n\r\n private addCustomerInfoByFbo(contact) {\r\n var contactInfoByFbo = {\r\n ContactId: contact.contactId,\r\n FboId: this.sharedService.currentUser.fboId,\r\n CopyAlerts: contact.copyAlerts\r\n };\r\n\r\n this.contactInfoByFboService\r\n .add(contactInfoByFbo)\r\n .subscribe((data: any) => {\r\n });\r\n }\r\n\r\n //[#hz0jtd] FlatFile importer was requested to be removed\r\n //async launchImporter() {\r\n // if (!this.LICENSE_KEY) {\r\n // return alert('Set LICENSE_KEY on Line 13 before continuing.');\r\n // }\r\n // try {\r\n // const results = await this.importer.requestDataFromUser();\r\n // this.importer.displayLoader();\r\n // const customerId = this.route.snapshot.paramMap.get('id');\r\n // if (results) {\r\n // results.data.forEach((result) => {\r\n // result.groupid = this.sharedService.currentUser.groupId;\r\n // result.customerId = customerId;\r\n // });\r\n // this.contactInfoByGroupsService\r\n // .import(results.data)\r\n // .subscribe((data: any) => {\r\n // if (data) {\r\n // data.forEach((result) => {\r\n // this.contactsData.push(result);\r\n // });\r\n\r\n // this.contactsDataSource = new MatTableDataSource(\r\n // this.contactsData\r\n // );\r\n // this.contactsDataSource.sort = this.sort;\r\n\r\n // this.importer.displaySuccess(\r\n // 'Data successfully imported!'\r\n // );\r\n // }\r\n // });\r\n // }\r\n // } catch (e) {}\r\n //}\r\n\r\n //initializeImporter() {\r\n // FlatfileImporter.setVersion(2);\r\n // this.importer = new FlatfileImporter(this.LICENSE_KEY, {\r\n // allowCustom: true,\r\n // allowInvalidSubmit: true,\r\n // disableManualInput: false,\r\n // fields: [\r\n // {\r\n // alternates: ['first name'],\r\n // description: 'Contact First Name',\r\n // key: 'FirstName',\r\n // label: 'First Name',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['last name'],\r\n // description: 'Contact Last Name',\r\n // key: 'LastName',\r\n // label: 'Last Name',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['title'],\r\n // description: 'Contact Title',\r\n // key: 'Title',\r\n // label: 'Title',\r\n // },\r\n // {\r\n // alternates: ['email', 'email address'],\r\n // description: 'Email Address',\r\n // key: 'Email',\r\n // label: 'Email',\r\n // },\r\n // {\r\n // alternates: ['phone', 'phone number'],\r\n // description: 'Phone Number',\r\n // key: 'PhoneNumber',\r\n // label: 'Phone Number',\r\n // },\r\n // {\r\n // alternates: ['extension'],\r\n // description: 'Phone Extension',\r\n // key: 'Extension',\r\n // label: 'Extension',\r\n // },\r\n // {\r\n // alternates: [\r\n // 'mobile',\r\n // 'cell',\r\n // 'mobile phone',\r\n // 'cell phone',\r\n // ],\r\n // description: 'Mobile Phone',\r\n // key: 'MobilePhone',\r\n // label: 'Mobile',\r\n // },\r\n // {\r\n // alternates: ['fax'],\r\n // description: 'Fax',\r\n // key: 'Fax',\r\n // label: 'Fax',\r\n // },\r\n // {\r\n // alternates: ['address', 'street address'],\r\n // description: 'Street Address',\r\n // key: 'Address',\r\n // label: 'Address',\r\n // },\r\n // {\r\n // alternates: ['city', 'town'],\r\n // description: 'City',\r\n // key: 'City',\r\n // label: 'City',\r\n // },\r\n // {\r\n // alternates: ['state'],\r\n // description: 'State',\r\n // key: 'State',\r\n // label: 'State',\r\n // },\r\n // {\r\n // alternates: ['country'],\r\n // description: 'Country',\r\n // key: 'Country',\r\n // label: 'Country',\r\n // },\r\n // {\r\n // alternates: ['primary'],\r\n // description: 'Primary',\r\n // key: 'PrimaryContact',\r\n // label: 'Primary',\r\n // },\r\n // {\r\n // alternates: ['copy on distribution'],\r\n // description: 'Copy Contact on Distribution',\r\n // key: 'CopyAlertsContact',\r\n // label: 'Copy on Distribution',\r\n // },\r\n // ],\r\n // managed: true,\r\n // type: 'Contacts',\r\n // });\r\n // this.importer.setCustomer({\r\n // name: 'WebsiteImport',\r\n // userId: '1',\r\n // });\r\n //}\r\n}\r\n","
\r\n \r\n \r\n \r\n First Name\r\n \r\n \r\n {{ contact.firstName }}\r\n \r\n \r\n\r\n \r\n Last Name\r\n \r\n {{ contact.lastName }}\r\n \r\n \r\n\r\n \r\n Title\r\n \r\n {{ contact.title }}\r\n \r\n \r\n\r\n \r\n Email\r\n \r\n {{ contact.email }}\r\n \r\n \r\n\r\n \r\n Phone\r\n \r\n {{ contact.phone }}\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
Pricing Distribution
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n Add New\r\n \r\n
\r\n \r\n  \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-contacts-home',\r\n styleUrls: ['./contacts-home.component.scss'],\r\n templateUrl: './contacts-home.component.html',\r\n})\r\nexport class ContactsHomeComponent {\r\n @Input() contactsData: Array;\r\n\r\n constructor() {}\r\n}\r\n","
contacts-home Component
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute } from '@angular/router';\r\n/*import FlatfileImporter from 'flatfile-csv-importer';*/\r\nimport * as _ from 'lodash';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { ContactinfobygroupsService } from '../../../services/contactinfobygroups.service';\r\nimport { ContactsService } from '../../../services/contacts.service';\r\nimport { FbocontactsService } from '../../../services/fbocontacts.service';\r\nimport { SystemcontactsNewContactModalComponent } from '../systemcontacts-new-contact-modal/systemcontacts-new-contact-modal.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-systemcontacts-grid',\r\n styleUrls: ['./systemcontacts-grid.component.scss'],\r\n templateUrl: './systemcontacts-grid.component.html',\r\n})\r\nexport class SystemcontactsGridComponent implements OnInit {\r\n @Output() contactDeleted = new EventEmitter();\r\n @Output() newContactClicked = new EventEmitter();\r\n @Output() editContactClicked = new EventEmitter();\r\n @Input() contactsData: Array;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n public currentContactInfoByGroup: any;\r\n contactsDataSource: MatTableDataSource = null;\r\n displayedColumns: string[] = [\r\n 'firstName',\r\n 'lastName',\r\n 'email',\r\n 'copyAlerts',\r\n 'copyOrders',\r\n 'delete',\r\n ];\r\n public copyAllAlerts = false;\r\n public copyAllOrders = false;\r\n\r\n /*LICENSE_KEY = '9eef62bd-4c20-452c-98fd-aa781f5ac111';*/\r\n\r\n results = '[]';\r\n\r\n /*private importer: FlatfileImporter;*/\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n public deleteUserDialog: MatDialog,\r\n private fbocontactsService: FbocontactsService,\r\n private contactsService: ContactsService,\r\n private contactInfoByGroupsService: ContactinfobygroupsService,\r\n private sharedService: SharedService,\r\n public newContactDialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (!this.contactsData) {\r\n return;\r\n }\r\n\r\n this.refreshTable();\r\n\r\n //FlatfileImporter.setVersion(2);\r\n //this.initializeImporter();\r\n //this.importer.setCustomer({\r\n // name: 'WebsiteImport',\r\n // userId: '1',\r\n //});\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n // Public Methods\r\n public refreshTable() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {});\r\n this.contactsDataSource = new MatTableDataSource(this.contactsData);\r\n this.contactsDataSource.sort = this.sort;\r\n const unselectedIndexAlerts = _.findIndex(\r\n this.contactsData,\r\n (contact) => !contact.copyAlerts\r\n );\r\n this.copyAllAlerts =\r\n this.contactsData.length && unselectedIndexAlerts === -1\r\n ? true\r\n : false;\r\n const unselectedIndexOrders = _.findIndex(\r\n this.contactsData,\r\n (contact) => !contact.copyOrders\r\n );\r\n this.copyAllOrders =\r\n this.contactsData.length && unselectedIndexOrders === -1\r\n ? true\r\n : false;\r\n }\r\n\r\n public editRecord(record: any) {\r\n const dialogRef = this.newContactDialog.open(\r\n SystemcontactsNewContactModalComponent,\r\n {\r\n data: Object.assign({}, record),\r\n height: '350px',\r\n width: '1100px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n if (result === 'delete') {\r\n this.fbocontactsService.remove(record).subscribe(() => {\r\n this.contactsData = this.contactsData.filter(\r\n (c) => c.oid !== record.oid\r\n );\r\n this.refreshTable();\r\n this.fbocontactsService\r\n .updateFuelvendor({\r\n fboId: this.sharedService.currentUser.fboId,\r\n })\r\n .subscribe();\r\n });\r\n } else {\r\n const updatedContact = {\r\n ...record,\r\n ...result,\r\n oid: result.contactId,\r\n };\r\n\r\n this.contactsService.update(updatedContact).subscribe(() => {\r\n for (let i = 0; i < this.contactsData.length; i++) {\r\n if (this.contactsData[i].oid === result.oid) {\r\n this.contactsData[i] = result;\r\n }\r\n }\r\n this.refreshTable();\r\n this.fbocontactsService\r\n .updateFuelvendor({\r\n fboId: this.sharedService.currentUser.fboId,\r\n })\r\n .subscribe();\r\n });\r\n }\r\n });\r\n }\r\n\r\n public newRecord(e: any) {\r\n e.preventDefault();\r\n\r\n const dialogRef = this.newContactDialog.open(\r\n SystemcontactsNewContactModalComponent,\r\n {\r\n data: {},\r\n height: '300px',\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n const payload = {\r\n ...result,\r\n fboId: this.sharedService.currentUser.fboId,\r\n };\r\n this.fbocontactsService\r\n .addnewcontact(payload)\r\n .subscribe((newFbocontact) => {\r\n this.contactsData.push(newFbocontact);\r\n this.refreshTable();\r\n this.fbocontactsService\r\n .updateFuelvendor(payload)\r\n .subscribe();\r\n });\r\n });\r\n }\r\n\r\n public updateCopyAlertsValue(value: any) {\r\n const unselectedIndexAlerts = _.findIndex(\r\n this.contactsData,\r\n (contact) => !contact.copyAlerts\r\n );\r\n this.copyAllAlerts = unselectedIndexAlerts >= 0 ? false : true;\r\n\r\n value.groupId = this.sharedService.currentUser.groupId;\r\n const updatedContact = Object.assign({}, value);\r\n updatedContact.oid = value.contactId;\r\n\r\n this.contactsService.update(updatedContact).subscribe();\r\n }\r\n\r\n public updateAllCopyAlertsValues() {\r\n this.copyAllAlerts = !this.copyAllAlerts;\r\n _.forEach(this.contactsData, (contact) => {\r\n contact.copyAlerts = this.copyAllAlerts;\r\n contact.GroupId = this.sharedService.currentUser.groupId;\r\n const updatedContact = Object.assign({}, contact);\r\n updatedContact.oid = contact.contactId;\r\n\r\n this.contactsService.update(updatedContact).subscribe();\r\n });\r\n }\r\n\r\n public updateCopyOrdersValue(value: any) {\r\n const unselectedIndexOrders = _.findIndex(\r\n this.contactsData,\r\n (contact) => !contact.copyOrders\r\n );\r\n this.copyAllOrders = unselectedIndexOrders >= 0 ? false : true;\r\n\r\n value.groupId = this.sharedService.currentUser.groupId;\r\n const updatedContact = Object.assign({}, value);\r\n updatedContact.oid = value.contactId;\r\n\r\n this.contactsService.update(updatedContact).subscribe();\r\n }\r\n\r\n public updateAllCopyOrdersValues() {\r\n this.copyAllOrders = !this.copyAllOrders;\r\n _.forEach(this.contactsData, (contact) => {\r\n contact.copyOrders = this.copyAllOrders;\r\n contact.GroupId = this.sharedService.currentUser.groupId;\r\n const updatedContact = Object.assign({}, contact);\r\n updatedContact.oid = contact.contactId;\r\n\r\n this.contactsService.update(updatedContact).subscribe();\r\n });\r\n }\r\n\r\n //[#hz0jtd] FlatFile importer was requested to be removed\r\n //async launchImporter() {\r\n // if (!this.LICENSE_KEY) {\r\n // return alert('Set LICENSE_KEY on Line 13 before continuing.');\r\n // }\r\n // try {\r\n // const results = await this.importer.requestDataFromUser();\r\n // this.importer.displayLoader();\r\n // const customerId = this.route.snapshot.paramMap.get('id');\r\n // if (results) {\r\n // results.data.forEach((result) => {\r\n // result.groupid = this.sharedService.currentUser.groupId;\r\n // result.customerId = customerId;\r\n // });\r\n // this.contactInfoByGroupsService\r\n // .import(results.data)\r\n // .subscribe((data: any) => {\r\n // if (data) {\r\n // data.forEach((result) => {\r\n // this.contactsData.push(result);\r\n // });\r\n\r\n // this.contactsDataSource = new MatTableDataSource(\r\n // this.contactsData\r\n // );\r\n // this.contactsDataSource.sort = this.sort;\r\n\r\n // this.importer.displaySuccess(\r\n // 'Data successfully imported!'\r\n // );\r\n // }\r\n // });\r\n // }\r\n // } catch (e) {}\r\n //}\r\n\r\n //initializeImporter() {\r\n // this.importer = new FlatfileImporter(this.LICENSE_KEY, {\r\n // allowCustom: true,\r\n // allowInvalidSubmit: true,\r\n // disableManualInput: false,\r\n // fields: [\r\n // {\r\n // alternates: ['first name'],\r\n // description: 'Contact First Name',\r\n // key: 'FirstName',\r\n // label: 'First Name',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['last name'],\r\n // description: 'Contact Last Name',\r\n // key: 'LastName',\r\n // label: 'Last Name',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['title'],\r\n // description: 'Contact Title',\r\n // key: 'Title',\r\n // label: 'Title',\r\n // },\r\n // {\r\n // alternates: ['email', 'email address'],\r\n // description: 'Email Address',\r\n // key: 'Email',\r\n // label: 'Email',\r\n // },\r\n // {\r\n // alternates: ['phone', 'phone number'],\r\n // description: 'Phone Number',\r\n // key: 'PhoneNumber',\r\n // label: 'Phone Number',\r\n // },\r\n // {\r\n // alternates: ['extension'],\r\n // description: 'Phone Extension',\r\n // key: 'Extension',\r\n // label: 'Extension',\r\n // },\r\n // {\r\n // alternates: [\r\n // 'mobile',\r\n // 'cell',\r\n // 'mobile phone',\r\n // 'cell phone',\r\n // ],\r\n // description: 'Mobile Phone',\r\n // key: 'MobilePhone',\r\n // label: 'Mobile',\r\n // },\r\n // {\r\n // alternates: ['fax'],\r\n // description: 'Fax',\r\n // key: 'Fax',\r\n // label: 'Fax',\r\n // },\r\n // {\r\n // alternates: ['address', 'street address'],\r\n // description: 'Street Address',\r\n // key: 'Address',\r\n // label: 'Address',\r\n // },\r\n // {\r\n // alternates: ['city', 'town'],\r\n // description: 'City',\r\n // key: 'City',\r\n // label: 'City',\r\n // },\r\n // {\r\n // alternates: ['state'],\r\n // description: 'State',\r\n // key: 'State',\r\n // label: 'State',\r\n // },\r\n // {\r\n // alternates: ['country'],\r\n // description: 'Country',\r\n // key: 'Country',\r\n // label: 'Country',\r\n // },\r\n // {\r\n // alternates: ['primary'],\r\n // description: 'Primary',\r\n // key: 'PrimaryContact',\r\n // label: 'Primary',\r\n // },\r\n // {\r\n // alternates: ['copy on distribution'],\r\n // description: 'Copy Contact on Distribution',\r\n // key: 'CopyAlertsContact',\r\n // label: 'Copy on Distribution',\r\n // },\r\n // ],\r\n // managed: true,\r\n // type: 'Contacts',\r\n // });\r\n //}\r\n}\r\n","
\r\n \r\n \r\n \r\n
First Name
\r\n \r\n \r\n
{{ contact.firstName }}
\r\n \r\n
\r\n\r\n \r\n \r\n
Last Name
\r\n \r\n \r\n
{{ contact.lastName }}
\r\n \r\n
\r\n\r\n \r\n \r\n
Title
\r\n \r\n \r\n
{{ contact.title }}
\r\n \r\n
\r\n\r\n \r\n \r\n
Email
\r\n \r\n \r\n
{{ contact.email }}
\r\n \r\n
\r\n\r\n \r\n \r\n
Phone
\r\n \r\n \r\n
{{ contact.phone }}
\r\n \r\n
\r\n\r\n \r\n \r\n
Copy All Distribution
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
Copy All Orders
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Add New\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 { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\nimport { ContactsDialogConfirmContactDeleteComponent } from '../contact-confirm-delete-modal/contact-confirm-delete-modal.component';\r\n\r\nexport interface NewContactDialogData {\r\n firstName?: string;\r\n lastName?: string;\r\n email: string;\r\n copyAlerts?: boolean;\r\n copyOrders?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-systemcontacts-new-contact-modal',\r\n styleUrls: ['./systemcontacts-new-contact-modal.component.scss'],\r\n templateUrl: './systemcontacts-new-contact-modal.component.html',\r\n})\r\nexport class SystemcontactsNewContactModalComponent implements OnInit {\r\n contactForm: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewContactDialogData,\r\n public dialogContactDeleteRef: MatDialog\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (!this.data.email) {\r\n this.data.copyAlerts = true;\r\n this.data.copyOrders = true;\r\n }\r\n\r\n this.contactForm = new FormGroup({\r\n copyAlerts: new FormControl(this.data.copyAlerts),\r\n copyOrders: new FormControl(this.data.copyOrders),\r\n email: new FormControl(this.data.email, [\r\n Validators.required,\r\n Validators.email,\r\n ]),\r\n firstName: new FormControl(this.data.firstName),\r\n lastName: new FormControl(this.data.lastName),\r\n });\r\n }\r\n\r\n // Public Methods\r\n public onSave(): void {\r\n if (this.contactForm.valid) {\r\n const result: NewContactDialogData = {\r\n ...this.data,\r\n copyAlerts: this.contactForm.value.copyAlerts,\r\n copyOrders: this.contactForm.value.copyOrders,\r\n email: this.contactForm.value.email,\r\n firstName: this.contactForm.value.firstName,\r\n lastName: this.contactForm.value.lastName,\r\n };\r\n this.dialogRef.close(result);\r\n }\r\n }\r\n\r\n public confirmDelete(data: NewContactDialogData) {\r\n const dialogRef = this.dialogContactDeleteRef.open(\r\n ContactsDialogConfirmContactDeleteComponent,\r\n {\r\n data,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result || result !== 'cancel') {\r\n this.dialogRef.close('delete');\r\n }\r\n });\r\n }\r\n}\r\n","

\r\n Contact Information  \r\n Delete Contact\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Copy on Distribution\r\n \r\n
\r\n
\r\n \r\n Copy on Orders\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n save\r\n Save Contact\r\n \r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-aircraft-dialog-confirm-delete',\r\n styleUrls: ['./customer-aircrafts-confirm-delete-modal.component.scss'],\r\n templateUrl: './customer-aircrafts-confirm-delete-modal.component.html',\r\n})\r\nexport class DialogConfirmAircraftDeleteComponent {\r\n private aircraftId = 0;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n\r\n public saveEdit() {\r\n this.dialogRef.close(this.aircraftId);\r\n }\r\n}\r\n","

Confirm Aircraft Removal

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

Are you sure you want to delete {{ data.tailNumber }}?

\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 { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\n\r\nexport interface NewCustomerAircraftDialogData {\r\n gropupId: number;\r\n customerId: number;\r\n aircraftId: number;\r\n tailNumber: string;\r\n size: number;\r\n basedPageLocation: string;\r\n networkCode: string;\r\n addedFrom: number;\r\n selectedAircraft: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-customer-aircrafts-dialog-new-aircraft',\r\n styleUrls: ['./customer-aircrafts-dialog-new-aircraft.component.scss'],\r\n templateUrl: './customer-aircrafts-dialog-new-aircraft.component.html',\r\n})\r\nexport class CustomerAircraftsDialogNewAircraftComponent implements OnInit {\r\n // Public Members\r\n public aircraftSizes: Array;\r\n public aircraftTypes: Array;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewCustomerAircraftDialogData,\r\n private aircraftsService: AircraftsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.aircraftsService\r\n .getAll()\r\n .subscribe((data: any) => (this.aircraftTypes = data));\r\n this.aircraftsService\r\n .getAircraftSizes()\r\n .subscribe((data: any) => (this.aircraftSizes = data));\r\n }\r\n\r\n // Public Methods\r\n public onAircraftTypeChanged(selectedAircraft) {\r\n this.data.selectedAircraft = selectedAircraft;\r\n this.data.aircraftId = this.data.selectedAircraft.aircraftId;\r\n this.data.size = this.data.selectedAircraft.size;\r\n }\r\n\r\n public displayAircraft(aircraft) {\r\n return aircraft ? `${aircraft.make} ${aircraft.model}` : aircraft;\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

New Aircraft

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Add Aircraft\r\n \r\n \r\n
\r\n","import { SharedService } from './../../../layouts/shared-service';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\nimport { DialogConfirmAircraftDeleteComponent } from '../customer-aircrafts-confirm-delete-modal/customer-aircrafts-confirm-delete-modal.component';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { CustomerAircraftNote } from '../../../models/customer-aircraft-note';\r\nimport { CustomerAircraft } from '../../../models/customer-aircraft';\r\n\r\n@Component({\r\n selector: 'app-customer-aircrafts-edit',\r\n styleUrls: ['./customer-aircrafts-edit.component.scss'],\r\n templateUrl: './customer-aircrafts-edit.component.html',\r\n})\r\nexport class CustomerAircraftsEditComponent implements OnInit {\r\n @Output() saveEditClicked = new EventEmitter();\r\n @Output() cancelEditClicked = new EventEmitter();\r\n @Input() customerAircraftInfo: CustomerAircraft;\r\n\r\n // Public Members\r\n public aircraftSizes: Array;\r\n public aircraftTypes: Array;\r\n public pricingTemplates: Array;\r\n public customerInfoByGroupId : any ;\r\n public customerAircraftNote: CustomerAircraftNote;\r\n public isLoading: boolean = false;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n private aircraftsService: AircraftsService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private dialogAircraftDeleteRef: MatDialog ,\r\n private sharedService : SharedService\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.data) {\r\n this.customerAircraftsService.get(this.data).subscribe((data: CustomerAircraft) => {\r\n\r\n this.customerAircraftInfo = data;\r\n var notesForFbo = this.customerAircraftInfo?.notes?.filter(x => x.fboId == this.sharedService.currentUser.fboId);\r\n this.customerAircraftNote = notesForFbo && notesForFbo.length > 0 ? notesForFbo[0] : null;\r\n if (this.customerAircraftNote == null)\r\n this.customerAircraftNote = {\r\n oid: 0,\r\n fboId: this.sharedService.currentUser.fboId,\r\n customerAircraftId: this.customerAircraftInfo.oid,\r\n notes: '',\r\n lastUpdatedByUserId: this.sharedService.currentUser.oid\r\n };\r\n\r\n });\r\n }\r\n\r\n this.aircraftsService\r\n .getAll()\r\n .subscribe((data: any) => (this.aircraftTypes = data));\r\n this.aircraftsService\r\n .getAircraftSizes()\r\n .subscribe((data: any) => (this.aircraftSizes = data));\r\n\r\n }\r\n\r\n public saveEdit() {\r\n this.isLoading = true;\r\n console.log(this.data.customerGroupId)\r\n this.customerAircraftsService\r\n .update(this.customerAircraftInfo , this.sharedService.currentUser.oid)\r\n .subscribe((data: CustomerAircraft) => {\r\n this.customerAircraftNote.customerAircraftId = data.oid;\r\n if (this.customerAircraftNote.oid > 0) {\r\n this.customerAircraftsService.updateCustomerAircraftNotes(this.customerAircraftNote).subscribe((noteResponse: any) => { this.dialogRef.close(data); })\r\n } else {\r\n this.customerAircraftsService.addCustomerAircraftNotes(this.customerAircraftNote).subscribe((noteResponse: any) => { this.dialogRef.close(data); })\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n\r\n public cancelEdit() {\r\n this.data = null;\r\n this.dialogRef.close();\r\n }\r\n\r\n public ConfirmDelete(data: any) {\r\n const dialogRef = this.dialogAircraftDeleteRef.open(\r\n DialogConfirmAircraftDeleteComponent,\r\n {\r\n data,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result === 'cancel') {\r\n } else if (result && result.oid) {\r\n result.toDelete = true;\r\n this.dialogRef.close(result);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n General Information  \r\n \r\n Delete Aircraft\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ aircraftType.make }} {{ aircraftType.model }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ aircraftSize.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 save\r\n Save Aircraft\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSelectChange } from '@angular/material/select';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActivatedRoute } from '@angular/router';\r\n/*import FlatfileImporter from 'flatfile-csv-importer';*/\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { AircraftpricesService } from '../../../services/aircraftprices.service';\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { CustomcustomertypesService } from '../../../services/customcustomertypes.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\n// Components\r\nimport { CustomerAircraftsDialogNewAircraftComponent } from '../customer-aircrafts-dialog-new-aircraft/customer-aircrafts-dialog-new-aircraft.component';\r\nimport { CustomerAircraftsEditComponent } from '../customer-aircrafts-edit/customer-aircrafts-edit.component';\r\n\r\n// Models\r\nimport { CustomerAircraft } from '../../../models/customer-aircraft';\r\nimport { SnackBarService } from 'src/app/services/utils/snackBar.service';\r\nimport { FavoritesService } from 'src/app/services/favorites.service';\r\nimport { CallbackComponent } from 'src/app/shared/components/favorite-icon/favorite-icon.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-customer-aircrafts-grid',\r\n styleUrls: ['./customer-aircrafts-grid.component.scss'],\r\n templateUrl: './customer-aircrafts-grid.component.html',\r\n})\r\nexport class CustomerAircraftsGridComponent implements OnInit {\r\n // Input/Output Bindings\r\n @Output() updateCustomerPricingTemplate = new EventEmitter();\r\n @Input() customer: any;\r\n @Input() customerAircraftsData: Array;\r\n @Input() pricingTemplatesData: Array;\r\n @Input() search: string;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n // Public Members\r\n public customerAircraftsDataSource: MatTableDataSource = null;\r\n public displayedColumns: string[] = [\r\n 'tailNumber',\r\n 'aircraftType',\r\n 'aircraftSize',\r\n 'aircraftPricingTemplate',\r\n 'notes',\r\n ];\r\n public resultsLength = 0;\r\n public aircraftSizes: Array;\r\n public aircraftTypes: Array;\r\n public isLoadingAircraftTypes = false;\r\n public pageIndex = 0;\r\n public customerInfobyGroupId : any;\r\n public isFavoriteCompany = false;\r\n /*LICENSE_KEY = '9eef62bd-4c20-452c-98fd-aa781f5ac111';*/\r\n\r\n results = '[]';\r\n\r\n /*private importer: FlatfileImporter;*/\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(\r\n public newCustomerAircraftDialog: MatDialog,\r\n public editCustomerAircraftDialog: MatDialog,\r\n public selectModalAircraftDialog: MatDialog,\r\n private aircraftsService: AircraftsService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private aircraftPricesService: AircraftpricesService,\r\n private customCustomerTypeService: CustomcustomertypesService,\r\n private sharedService: SharedService ,\r\n private route : ActivatedRoute\r\n ) {\r\n this.isLoadingAircraftTypes = true;\r\n this.aircraftsService.getAll().subscribe((data: any) => {\r\n this.aircraftTypes = data;\r\n this.isLoadingAircraftTypes = false;\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.customerInfobyGroupId = this.route.snapshot.paramMap.get('id');\r\n if (!this.customerAircraftsData) {\r\n return;\r\n }\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.customerAircraftsDataSource = new MatTableDataSource(\r\n this.customerAircraftsData\r\n );\r\n this.customerAircraftsDataSource.sort = this.sort;\r\n this.customerAircraftsDataSource.paginator = this.paginator;\r\n\r\n if (sessionStorage.getItem('pageIndex')) {\r\n this.paginator.pageIndex = sessionStorage.getItem(\r\n 'pageIndex'\r\n ) as any;\r\n sessionStorage.removeItem('pageIndex');\r\n sessionStorage.removeItem('isCustomerEdit');\r\n } else {\r\n this.paginator.pageIndex = 0;\r\n }\r\n\r\n this.resultsLength = this.customerAircraftsData.length;\r\n this.customerAircraftsDataSource.sortingDataAccessor = (\r\n item,\r\n property\r\n ) => {\r\n switch (property) {\r\n case 'aircraftType':\r\n return item.make + ' ' + item.model;\r\n case 'aircraftSize':\r\n switch (item.size) {\r\n case 8: // Single Engine Piston\r\n return 1;\r\n case 11: // Light Twin\r\n return 2;\r\n case 12: // Heavy Twin\r\n return 3;\r\n case 4: // Light Helicopter\r\n return 4;\r\n case 9: // Medium Helicopter\r\n return 5;\r\n case 10: // Heavy Helicopter\r\n return 6;\r\n case 13: // Light Turboprop\r\n return 7;\r\n case 6: // Single Turboprop\r\n return 8;\r\n case 14: // Medium Turboprop\r\n return 9;\r\n case 15: // Heavy Turboprop\r\n return 10;\r\n case 7: // Very Light Jet\r\n return 11;\r\n case 1: // Light Jet\r\n return 12;\r\n case 2: // Medium Jet\r\n return 13;\r\n case 3: // Heavy Jet\r\n return 14;\r\n case 16: // Super Heavy Jet\r\n return 15;\r\n case 5: // Wide Body\r\n return 16;\r\n default:\r\n return 17;\r\n }\r\n case 'aircraftPricingTemplate':\r\n return item.pricingTemplateName;\r\n default:\r\n return item[property];\r\n }\r\n };\r\n\r\n if (this.search != \"\")\r\n this.applyFilter(this.search);\r\n\r\n //FlatfileImporter.setVersion(2);\r\n //this.initializeImporter();\r\n //this.importer.setCustomer({\r\n // name: 'WebsiteImport',\r\n // userId: '1',\r\n //});\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if(changes.customer){\r\n this.isFavoriteCompany = changes.customer.currentValue.favoriteCompany != null;\r\n }\r\n }\r\n public newCustomerAircraft() {\r\n const dialogRef = this.newCustomerAircraftDialog.open(\r\n CustomerAircraftsDialogNewAircraftComponent,\r\n {\r\n data: { oid: 0 },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n const id = this.route.snapshot.paramMap.get('id');\r\n result.groupId = this.sharedService.currentUser.groupId;\r\n result.customerId = this.customer.customerId;\r\n this.customerAircraftsService.add(result , this.sharedService.currentUser.oid, this.sharedService.currentUser.fboId,this.isFavoriteCompany).subscribe(() => {\r\n this.customerAircraftsService\r\n .getCustomerAircraftsByGroupAndCustomerId(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n result.customerId\r\n )\r\n .subscribe((data: any) => {\r\n this.customerAircraftsData = data;\r\n this.customerAircraftsDataSource =\r\n new MatTableDataSource(this.customerAircraftsData);\r\n this.customerAircraftsDataSource.sort = this.sort;\r\n this.customerAircraftsDataSource.paginator =\r\n this.paginator;\r\n });\r\n });\r\n });\r\n }\r\n\r\n public editCustomerAircraft(customerAircraft: any) {\r\n if (customerAircraft) {\r\n const dialogRef = this.editCustomerAircraftDialog.open(\r\n CustomerAircraftsEditComponent,\r\n {\r\n data: {\r\n disableDelete:\r\n customerAircraft.isFuelerlinxNetwork &&\r\n customerAircraft.addedFrom === 1,\r\n oid: customerAircraft.oid,\r\n customerId : this.customer.oid\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n if (result.toDelete) {\r\n const id = this.route.snapshot.paramMap.get('id');\r\n this.customerAircraftsService\r\n .remove(result , this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.customerAircraftsService\r\n .getCustomerAircraftsByGroupAndCustomerId(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n result.customerId\r\n )\r\n .subscribe((data: any) => {\r\n this.customerAircraftsData = data;\r\n this.customerAircraftsDataSource =\r\n new MatTableDataSource(\r\n this.customerAircraftsData\r\n );\r\n this.customerAircraftsDataSource.sort =\r\n this.sort;\r\n this.customerAircraftsDataSource.paginator =\r\n this.paginator;\r\n });\r\n });\r\n }\r\n\r\n this.aircraftsService\r\n .getAircraftSizes()\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.customerAircraftsService\r\n .getCustomerAircraftsByGroupAndCustomerId(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n result.customerId\r\n )\r\n .subscribe((dataOutput: any) => {\r\n this.customerAircraftsData = dataOutput;\r\n this.customerAircraftsDataSource =\r\n new MatTableDataSource(\r\n this.customerAircraftsData\r\n );\r\n this.customerAircraftsDataSource.sort =\r\n this.sort;\r\n this.customerAircraftsDataSource.paginator =\r\n this.paginator;\r\n });\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n public applyFilter(filterValue: string) {\r\n this.customerAircraftsDataSource.filter = filterValue\r\n .trim()\r\n .toLowerCase();\r\n }\r\n\r\n onPageChanged(e: any) {\r\n sessionStorage.setItem('pageIndex', e.pageIndex);\r\n }\r\n\r\n public onMarginChange(event: MatSelectChange, customerAircraft: any) {\r\n const {\r\n aircraftId,\r\n customerId,\r\n groupId,\r\n make,\r\n model,\r\n oid,\r\n pricingTemplateId,\r\n size,\r\n tailNumber,\r\n } = customerAircraft;\r\n this.customerAircraftsService\r\n .updateTemplate(this.sharedService.currentUser.fboId, {\r\n aircraftId,\r\n customerId,\r\n groupId,\r\n make,\r\n model,\r\n oid,\r\n oldPricingTemplateId: pricingTemplateId,\r\n pricingTemplateId: event.value,\r\n size,\r\n tailNumber,\r\n })\r\n .subscribe(() => {\r\n customerAircraft.pricingTemplateId = event.value;\r\n const pricingTemplateIds =\r\n this.customerAircraftsDataSource.data.map(\r\n (d) => d.pricingTemplateId\r\n );\r\n if (pricingTemplateIds.every((v) => v === pricingTemplateId)) {\r\n this.customCustomerTypeService\r\n .updateForFboAndCustomer({\r\n customerId,\r\n fboId: this.sharedService.currentUser.fboId,\r\n pricingTemplateId,\r\n })\r\n .subscribe(() => {\r\n this.updateCustomerPricingTemplate.emit(\r\n pricingTemplateId\r\n );\r\n });\r\n\r\n this.aircraftPricesService\r\n .removeMultiple(this.customerAircraftsData)\r\n .subscribe(() => {\r\n this.customerAircraftsDataSource.data.forEach(\r\n (element) => {\r\n element.pricingTemplateId = null;\r\n element.pricingTemplateName = '';\r\n }\r\n );\r\n });\r\n }\r\n });\r\n }\r\n\r\n public getNoteToDisplayForAircraft(customerAircraft: CustomerAircraft) {\r\n var notesForFbo = customerAircraft?.notes?.filter(x => x.fboId == this.sharedService.currentUser.fboId);\r\n if (notesForFbo && notesForFbo.length > 0) {\r\n return notesForFbo[0].notes;\r\n }\r\n return '';\r\n }\r\n\r\n setIsFavoriteProperty(aircraft: any): any {\r\n aircraft.isFavorite = aircraft.favoriteAircraft != null;\r\n return aircraft;\r\n }\r\n get getCallBackComponent(): CallbackComponent{\r\n return CallbackComponent.aircraft;\r\n }\r\n\r\n //[#hz0jtd] FlatFile importer was requested to be removed\r\n //async launchImporter() {\r\n // if (!this.LICENSE_KEY) {\r\n // return alert('Set LICENSE_KEY on Line 13 before continuing.');\r\n // }\r\n // try {\r\n // const results = await this.importer.requestDataFromUser();\r\n // this.importer.displayLoader();\r\n\r\n // if (results) {\r\n // let aircraftSizes = [];\r\n // this.aircraftsService\r\n // .getAircraftSizes()\r\n // .subscribe((asizes: any) => {\r\n // if (asizes) {\r\n // aircraftSizes = asizes;\r\n // results.data.forEach((result) => {\r\n // result.groupid =\r\n // this.sharedService.currentUser.groupId;\r\n // result.customerId = this.customer.customerId;\r\n\r\n // if (result.Size) {\r\n // const sizeText = aircraftSizes.find(\r\n // (x) => x.description === result.Size\r\n // );\r\n\r\n // if (sizeText) {\r\n // result.Size = sizeText.value;\r\n // }\r\n // }\r\n // });\r\n\r\n // this.customerAircraftsService\r\n // .import(results.data)\r\n // .subscribe((cadata: any) => {\r\n // let allGood = true;\r\n // cadata.forEach((result) => {\r\n // if (!result.isImported) {\r\n // allGood = false;\r\n // }\r\n // });\r\n // if (allGood) {\r\n // this.importer.displaySuccess(\r\n // 'Data successfully imported!'\r\n // );\r\n // setTimeout(() => {\r\n // this.customerAircraftsService\r\n // .getCustomerAircraftsByGroupAndCustomerId(\r\n // this.sharedService\r\n // .currentUser.groupId,\r\n // this.sharedService\r\n // .currentUser.fboId,\r\n // cadata[0].customerId\r\n // )\r\n // .subscribe((data: any) => {\r\n // this.customerAircraftsData =\r\n // data;\r\n // this.customerAircraftsDataSource =\r\n // new MatTableDataSource(\r\n // this.customerAircraftsData\r\n // );\r\n // this.customerAircraftsDataSource.sort =\r\n // this.sort;\r\n // this.customerAircraftsDataSource.paginator =\r\n // this.paginator;\r\n // });\r\n // }, 1500);\r\n // } else {\r\n // this.importer.displaySuccess(\r\n // 'Import is finished, please click ok to see the results.'\r\n // );\r\n // const dialogRef =\r\n // this.selectModalAircraftDialog.open(\r\n // CustomerAircraftSelectModelComponent,\r\n // {\r\n // data: { aircrafts: cadata },\r\n // }\r\n // );\r\n\r\n // dialogRef\r\n // .afterClosed()\r\n // .subscribe((result) => {\r\n // if (!result) {\r\n // this.customerAircraftsService\r\n // .getCustomerAircraftsByGroupAndCustomerId(\r\n // this.sharedService\r\n // .currentUser\r\n // .groupId,\r\n // this.sharedService\r\n // .currentUser\r\n // .fboId,\r\n // cadata[0].customerId\r\n // )\r\n // .subscribe(\r\n // (data: any) => {\r\n // this.customerAircraftsData =\r\n // data;\r\n // this.customerAircraftsDataSource =\r\n // new MatTableDataSource(\r\n // this.customerAircraftsData\r\n // );\r\n // this.customerAircraftsDataSource.sort =\r\n // this.sort;\r\n // this.customerAircraftsDataSource.paginator =\r\n // this.paginator;\r\n // }\r\n // );\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // });\r\n // }\r\n // } catch (e) {}\r\n //}\r\n\r\n //initializeImporter() {\r\n // this.importer = new FlatfileImporter(this.LICENSE_KEY, {\r\n // allowCustom: true,\r\n // allowInvalidSubmit: true,\r\n // disableManualInput: false,\r\n // fields: [\r\n // {\r\n // alternates: [\r\n // 'tail',\r\n // 'plane tail',\r\n // 'N-number',\r\n // 'Nnumber',\r\n // 'Tail Number',\r\n // ],\r\n // description: 'Tail',\r\n // key: 'TailNumber',\r\n // label: 'Tail',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['make', 'manufacturer'],\r\n // description: 'Aircraft Make',\r\n // key: 'AircraftMake',\r\n // label: 'Make',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['model', 'plane model'],\r\n // description: 'Aircraft Model',\r\n // key: 'Model',\r\n // label: 'Model',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // {\r\n // alternates: ['size', 'plane size'],\r\n // description: 'Plane Size',\r\n // key: 'Size',\r\n // label: 'Size',\r\n // validators: [\r\n // {\r\n // error: 'this field is required',\r\n // validate: 'required',\r\n // },\r\n // ],\r\n // },\r\n // ],\r\n // managed: true,\r\n // type: 'Aircrafts',\r\n // });\r\n //}\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Tail\r\n \r\n
\r\n \r\n {{ customerAircraft.tailNumber }}\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n Type\r\n \r\n {{ customerAircraft.make }} {{ customerAircraft.model }}\r\n \r\n \r\n\r\n \r\n Size\r\n \r\n {{ customerAircraft.aircraftSizeDescription }}\r\n \r\n \r\n\r\n \r\n \r\n Pricing\r\n \r\n \r\n \r\n Company Pricing\r\n \r\n None\r\n {{ pricingTemplate.name }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n Add New\r\n \r\n
\r\n \r\n \r\n
\r\n {{getNoteToDisplayForAircraft(customerAircraft)}}\r\n
\r\n \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 { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\n\r\n// Services\r\n\r\n@Component({\r\n selector: 'app-customer-aircraft-select-model-dialog',\r\n styleUrls: ['./customer-aircrafts-select-model-dialog.component.scss'],\r\n templateUrl: './customer-aircrafts-select-model-dialog.component.html',\r\n})\r\nexport class CustomerAircraftSelectModelComponent implements OnInit {\r\n // Public Members\r\n public aircraftSizes: Array;\r\n public aircraftTypes: Array;\r\n\r\n public customerAircraftsDataSource: MatTableDataSource = null;\r\n\r\n displayedColumns: string[] = ['tailNumber', 'model', 'otherOptions'];\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n private customerAircraftsService: CustomeraircraftsService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.customerAircraftsDataSource = new MatTableDataSource(\r\n this.data.aircrafts\r\n );\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onSaveClick(): void {\r\n this.data.aircrafts.forEach((result) => {\r\n if (result.selectedModel) {\r\n result.model = result.selectedModel;\r\n }\r\n });\r\n this.customerAircraftsService\r\n .import(this.data.aircrafts)\r\n .subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n }\r\n}\r\n","

Ooops, we've hit a snag!

\r\n
\r\n

\r\n Here is a summary of your import, some of the aircrafts were not\r\n imported, please manually select the aircraft model. Thanks!\r\n

\r\n \r\n \r\n Tail Number\r\n {{ element.tailNumber }}\r\n \r\n \r\n Your Model\r\n {{ element.model }}\r\n \r\n \r\n \r\n Available Models\r\n \r\n \r\n \r\n {{ aircraftType }}\r\n \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, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-customer-aircraft-history',\r\n templateUrl: './customer-aircraft-history.component.html',\r\n styleUrls: ['./customer-aircraft-history.component.scss']\r\n})\r\nexport class CustomerAircraftHistoryComponent implements OnInit {\r\n\r\n @Input() oldCustomerAircrafts:any;\r\n @Input () newCustomerAircrafts : any;\r\n @Input () oldAircraft : any;\r\n @Input () newAircraft : any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
NameOld Data
Tail Number{{oldCustomerAircrafts.tailNumber}}
Type{{oldAircraft.make }} {{oldAircraft.model }}
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
NameNew Data
Tail Number{{newCustomerAircrafts.tailNumber}}
Type{{newAircraft.make }} {{newAircraft.model }}
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-customer-contact-history',\r\n templateUrl: './customer-contact-history.component.html',\r\n styleUrls: ['./customer-contact-history.component.scss']\r\n})\r\nexport class CustomerContactHistoryComponent implements OnInit {\r\n\r\n @Input() oldContact : any;\r\n @Input() newContact : any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
NameNew Data
Email{{newContact.email}}
First Name{{newContact.firstName}}
Last Name{{newContact.lastName}}
Phone{{newContact.phone}}
Mobile{{newContact.mobile}}
Address{{newContact.address}}
City{{newContact.city}}
State{{newContact.state}}
Country{{newContact.country}}
Fax{{newContact.fax}}
Title{{newContact.title}}
Extension{{newContact.extension}}
Is Primary?\r\n Primary\r\n Not Primary\r\n
\r\n
\r\n\r\n\r\n\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
NameOld Data
Email{{oldContact.email}}
First Name{{oldContact.firstName}}
Last Name{{oldContact.lastName}}
Phone{{oldContact.phone}}
Mobile{{oldContact.mobile}}
Address{{oldContact.address}}
City{{oldContact.city}}
State{{oldContact.state}}
Country{{oldContact.country}}
Fax{{oldContact.fax}}
Title{{oldContact.title}}
Extension{{oldContact.extension}}
Is Primary?\r\n Primary\r\n Not Primary\r\n
\r\n
\r\n","import { CustomerHistoryComponent } from '../customer-history/customer-history.component';\r\nimport { Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-customer-history-details',\r\n templateUrl: './customer-history-details.component.html',\r\n styleUrls: ['./customer-history-details.component.scss']\r\n})\r\nexport class CustomerHistoryDetailsComponent implements OnInit {\r\n\r\n newCustomerInfoByGroup : any;\r\n oldCustomerInfoByGroup : any;\r\n oldContact : any;\r\n newContact : any;\r\n oldCustomerAircrafts : any;\r\n newCustomerAircrafts : any;\r\n oldAircraft : any;\r\n newAircraft : any;\r\n oldPricingTemplate : any;\r\n newPricingTemplate : any;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any) { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.newCustomerInfoByGroup = this.data.newCustomerInfoByGroup;\r\n this.oldCustomerInfoByGroup = this.data.oldCustomerInfoByGroup;\r\n this.oldCustomerAircrafts = this.data.oldCustomerAircrafts;\r\n this.newCustomerAircrafts = this.data.newCustomerAircrafts;\r\n this.oldPricingTemplate = this.data.oldPricingTemplate;\r\n this.newPricingTemplate = this.data.newPricingTemplate;\r\n this.oldContact = this.data.oldContact;\r\n this.newContact = this.data.newContact;\r\n this.newAircraft = this.data.newAircaft;\r\n this.oldAircraft = this.data.oldAircaft;\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","

Change 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","import { ActivatedRoute } from '@angular/router';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { CustomerHistoryDetailsComponent } from '../customer-history-details/customer-history-details.component';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-customer-history',\r\n templateUrl: './customer-history.component.html',\r\n styleUrls: ['./customer-history.component.scss']\r\n})\r\nexport class CustomerHistoryComponent implements OnInit {\r\n\r\n @Input() customerHistory : any;\r\n customerHistoryDataSource : any;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n public pageIndex = 0;\r\n public resultsLength = 0;\r\n public displayedColumns: string[] = [\r\n 'dateTime',\r\n 'action',\r\n 'changes',\r\n 'username',\r\n 'role',\r\n 'tableName'\r\n ];\r\n sortChangeSubscription: Subscription;\r\n\r\n constructor(public dialog: MatDialog,\r\n private sharedService : SharedService,\r\n private customerInfobyGroupService : CustomerinfobygroupService ,\r\n private route : ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.customerHistoryDataSource = new MatTableDataSource(this.customerHistory);\r\n this.customerHistoryDataSource.sort = this.sort;\r\n this.customerHistoryDataSource.paginator = this.paginator;\r\n if (sessionStorage.getItem('pageIndex')) {\r\n this.paginator.pageIndex = sessionStorage.getItem(\r\n 'pageIndex'\r\n ) as any;\r\n sessionStorage.removeItem('pageIndex');\r\n\r\n } else {\r\n this.paginator.pageIndex = 0;\r\n }\r\n\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription.unsubscribe();\r\n }\r\n public applyFilter(filterValue: string) {\r\n this.customerHistoryDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n openDetailsDialog(customer)\r\n {\r\n this.dialog.open(CustomerHistoryDetailsComponent, {\r\n width: '500px',\r\n data: customer\r\n });\r\n\r\n }\r\n\r\n onPageChanged(e: any) {\r\n sessionStorage.setItem('pageIndex', e.pageIndex);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Time (UTC)\r\n \r\n {{ customer.dateTime | date :'short'}}\r\n \r\n \r\n\r\n \r\n Action\r\n \r\n {{customer.action}}\r\n \r\n \r\n\r\n \r\n Changes\r\n \r\n \r\n See Details\r\n arrow_right\r\n \r\n \r\n \r\n\r\n \r\n \r\n User\r\n \r\n \r\n {{customer.username}}\r\n \r\n \r\n\r\n \r\n \r\n Role\r\n \r\n \r\n {{customer.role}}\r\n \r\n \r\n\r\n\r\n \r\n \r\n Location\r\n \r\n \r\n {{customer.tableName}}\r\n \r\n \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, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-customer-info-by-group-history',\r\n templateUrl: './customer-info-by-group-history.component.html',\r\n styleUrls: ['./customer-info-by-group-history.component.scss']\r\n})\r\nexport class CustomerInfoByGroupHistoryComponent implements OnInit {\r\n\r\n @Input() newCustomerInfoByGroup : any;\r\n @Input() oldCustomerInfoByGroup : any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
NameOld DataNew Data
Active\r\n Activated\r\n Deactivated\r\n \r\n Activated\r\n Deactivated\r\n
Address{{oldCustomerInfoByGroup.address}}{{newCustomerInfoByGroup.address}}
certificateType{{oldCustomerInfoByGroup.certificateType}}{{newCustomerInfoByGroup.certificateType}}
city{{oldCustomerInfoByGroup.city}}{{newCustomerInfoByGroup.city}}
company{{oldCustomerInfoByGroup.company}}{{newCustomerInfoByGroup.company}}
country{{oldCustomerInfoByGroup.country}}{{newCustomerInfoByGroup.country}}
customer{{oldCustomerInfoByGroup.customer}}{{newCustomerInfoByGroup.customer}}
customerCompanyType{{oldCustomerInfoByGroup.customerCompanyType}}{{newCustomerInfoByGroup.customerCompanyType}}
distribute{{oldCustomerInfoByGroup.distribute}}{{newCustomerInfoByGroup.distribute}}
emailSubscription{{oldCustomerInfoByGroup.emailSubscription}}{{newCustomerInfoByGroup.emailSubscription}}
joined{{oldCustomerInfoByGroup.joined}}{{newCustomerInfoByGroup.joined}}
mainPhone{{oldCustomerInfoByGroup.mainPhone}}{{newCustomerInfoByGroup.mainPhone}}
network{{oldCustomerInfoByGroup.network}}{{newCustomerInfoByGroup.network}}
username{{oldCustomerInfoByGroup.username}}{{newCustomerInfoByGroup.username}}
state{{oldCustomerInfoByGroup.state}}{{newCustomerInfoByGroup.state}}
\r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n
NameNew Data
Active\r\n Activated\r\n Deactivated\r\n
Address{{newCustomerInfoByGroup.address}}
certificateType{{newCustomerInfoByGroup.certificateType}}
city{{newCustomerInfoByGroup.city}}
company{{newCustomerInfoByGroup.company}}
country{{newCustomerInfoByGroup.country}}
customer{{newCustomerInfoByGroup.customer}}
customerCompanyType{{newCustomerInfoByGroup.customerCompanyType}}
distribute{{newCustomerInfoByGroup.distribute}}
emailSubscription{{newCustomerInfoByGroup.emailSubscription}}
joined{{newCustomerInfoByGroup.joined}}
mainPhone{{newCustomerInfoByGroup.mainPhone}}
network{{newCustomerInfoByGroup.network}}
username{{newCustomerInfoByGroup.username}}
state{{newCustomerInfoByGroup.state}}
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-cutomer-itp-mragin-history',\r\n templateUrl: './cutomer-itp-mragin-history.component.html',\r\n styleUrls: ['./cutomer-itp-mragin-history.component.scss']\r\n})\r\nexport class CutomerItpMraginHistoryComponent implements OnInit {\r\n\r\n @Input () oldPricingTemplate : any;\r\n @Input () newPricingTemplate : any;\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n \r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
NameOld DataNew Data
ITP Margin Name{{oldPricingTemplate.name}}{{newPricingTemplate.name}}
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface NewCustomerCompanyTypeDialogData {\r\n oid: number;\r\n fboId: number;\r\n groupId: number;\r\n name: string;\r\n allowMultiplePricingTemplates: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-customer-company-type-dialog',\r\n styleUrls: ['./customer-company-type-dialog.component.scss'],\r\n templateUrl: './customer-company-type-dialog.component.html',\r\n})\r\nexport class CustomerCompanyTypeDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewCustomerCompanyTypeDialogData\r\n ) {}\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

New Customer Type

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Has multiple margins (i.e. commercial and private)\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Add Type\r\n \r\n \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface CustomerMatchDialogComponent {\r\n currentCustomerId: number;\r\n matchCustomerId: number;\r\n currentCustomerName: string;\r\n matchCustomerName: string;\r\n isAircraftMatch: boolean;\r\n isNameMatch: boolean;\r\n isContactMatch: boolean;\r\n matchNameCustomerId: number;\r\n matchNameCustomerOId: number;\r\n matchNameCustomer: string;\r\n matchContactCustomerOid: number;\r\n matchNameCustomerOid: number;\r\n matchCustomerOid: number;\r\n aircraftTails: [];\r\n result: string;\r\n}\r\n\r\n@Component({\r\n selector: 'customer-match-dialog',\r\n styleUrls: ['./customer-match-dialog.component.scss'],\r\n templateUrl: './customer-match-dialog.component.html',\r\n})\r\nexport class CustomerMatchDialogComponent implements OnInit {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: CustomerMatchDialogComponent\r\n ) {}\r\n\r\n ngOnInit(): void {}\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public keepSeparate(): void {\r\n this.data.result = 'KeepSeparate';\r\n this.dialogRef.close('KeepSeparate');\r\n }\r\n\r\n public mergeCustomers(): void {\r\n this.data.result = 'Merge';\r\n this.dialogRef.close(this.data);\r\n }\r\n}\r\n","

Potential Customer Match

\r\n
\r\n
\r\n
Match by Aircraft Tails
\r\n

\r\n Company name:\r\n {{ data.matchCustomerName }}\r\n

\r\n

List of Aircraft Tails

\r\n
    \r\n
  • \r\n {{ number }}\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n
Match by Company Name
\r\n

\r\n Company name:\r\n {{ data.matchNameCustomer }}\r\n

\r\n
\r\n
\r\n
\r\n
Match by Company Contact
\r\n

\r\n Company name:\r\n {{ data.matchNameCustomer }}\r\n

\r\n
\r\n
\r\n
\r\n \r\n Merging these customers will keep your existing contact details and\r\n assigned pricing templates while allowing you to price to this\r\n customer directly via FuelerLinx. Keeping them separate will keep\r\n two separate customers in your FBOLinx account.\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Merge Customers\r\n \r\n
\r\n","import { NgZone } from '@angular/core';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface NewCustomerTagDialogData {\r\n oid: number;\r\n customerId: number;\r\n groupId: number;\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-customer-tag-dialog',\r\n styleUrls: [],\r\n templateUrl: './customer-tag-dialog.component.html',\r\n})\r\nexport class CustomerTagDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private ngZone: NgZone,\r\n @Inject(MAT_DIALOG_DATA) public data: NewCustomerTagDialogData\r\n ) { }\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

New Customer Tag

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Add Tag\r\n \r\n \r\n
","import { AfterViewInit, Component, Input, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { FbosService } from 'src/app/services/fbos.service';\r\nimport * as SharedEvent from '../../../constants/sharedEvents';\r\nimport { FuelreqsService } from 'src/app/services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-customers-analytics',\r\n templateUrl: './customers-analytics.component.html',\r\n styleUrls: ['./customers-analytics.component.scss']\r\n})\r\nexport class CustomersAnalyticsComponent implements OnInit , AfterViewInit, OnDestroy {\r\n @ViewChild(MatSort) sort: MatSort;\r\n @Input() customerId;\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n public icao: string;\r\n public fbo: string;\r\n public icaoChangedSubscription: any;\r\n public chartName = 'companies-quotes-deal-table';\r\n public displayedColumns: string[] = ['company', 'directOrders', 'companyQuotesTotal', 'conversionRate', 'totalOrders', 'airportOrders', 'lastPullDate'];\r\n public dataSource: MatTableDataSource;\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private fbosService: FbosService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n\r\n ) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n this.filterStartDate = new Date(moment().add(-12, 'M').format('MM/DD/YYYY'));\r\n this.filterEndDate = new Date(moment().add(7, 'd').format('MM/DD/YYYY'));\r\n this.fbosService.get({oid: this.sharedService.currentUser.fboId}).subscribe(\r\n (data: any) => {\r\n this.fbo = data.fbo;\r\n }\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.icaoChangedSubscription = this.sharedService.changeEmitted$.subscribe(\r\n (message) => {\r\n if (message === SharedEvent.icaoChangedEvent) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.icaoChangedSubscription) {\r\n this.icaoChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n console.log(this.customerId)\r\n this.fuelreqsService\r\n .getCompanyQuotingDealStatistics(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate,\r\n this.customerId\r\n )\r\n .subscribe((data: any) => {\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'lastPullDate':\r\n if (item[property] === 'N/A') {\r\n if (this.sort.direction === 'asc') {\r\n return new Date(8640000000000000);\r\n } else {\r\n return new Date(-8640000000000000);\r\n }\r\n }\r\n return new Date(item[property]);\r\n default:\r\n return item[property];\r\n }\r\n };\r\n this.dataSource.sort = this.sort;\r\n }, () => {\r\n }, () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Company\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n Company\r\n \r\n {{ info.company }}\r\n \r\n\r\n \r\n \r\n Direct Orders\r\n \r\n \r\n {{ info.directOrders }}\r\n \r\n \r\n\r\n \r\n \r\n Number of Quotes\r\n \r\n \r\n {{ info.companyQuotesTotal }}\r\n \r\n \r\n\r\n \r\n \r\n Conversion Rate\r\n \r\n \r\n {{ info.conversionRate }}%\r\n \r\n \r\n\r\n \r\n \r\n Total Orders at {{ fbo }}\r\n \r\n \r\n {{ info.totalOrders }}\r\n \r\n \r\n\r\n \r\n \r\n Total Orders at {{ icao }}\r\n \r\n \r\n {{ info.airportOrders }}\r\n \r\n \r\n\r\n \r\n \r\n {{ icao }} Last Quoted\r\n \r\n \r\n {{ info.lastPullDate }}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, Inject, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport {\r\n AircraftSize,\r\n AircraftType,\r\n CertificateType,\r\n CustomerCompanyType,\r\n FeesAndTaxes,\r\n PricingTemplate,\r\n} from 'src/app/models';\r\nimport { AircraftsService } from 'src/app/services/aircrafts.service';\r\nimport { ContactinfobygroupsService } from 'src/app/services/contactinfobygroups.service';\r\nimport { CustomcustomertypesService } from 'src/app/services/customcustomertypes.service';\r\nimport { CustomerCompanyTypesService } from 'src/app/services/customer-company-types.service';\r\nimport { CustomeraircraftsService } from 'src/app/services/customeraircrafts.service';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { CustomersService } from 'src/app/services/customers.service';\r\nimport { CustomersviewedbyfboService } from 'src/app/services/customersviewedbyfbo.service';\r\nimport { FbofeesandtaxesService } from 'src/app/services/fbofeesandtaxes.service';\r\nimport { PricingtemplatesService } from 'src/app/services/pricingtemplates.service';\r\nimport { PriceBreakdownComponent } from 'src/app/shared/components/price-breakdown/price-breakdown.component';\r\n\r\nimport { CloseConfirmationComponent } from '../../../shared/components/close-confirmation/close-confirmation.component';\r\nimport { FormValidationHelperService } from 'src/app/helpers/forms/formValidationHelper.service';\r\nimport { AircraftResult, JetNet } from '../../../models/jetnet-information';\r\n\r\nenum WizardStep {\r\n COMPANY_INFO,\r\n CONTACT_INFO,\r\n ITP_MARGIN_TEMPLATE,\r\n AIRCRAFT,\r\n}\r\n\r\n@Component({\r\n selector: 'app-customers-dialog-new-customer',\r\n styleUrls: ['./customers-dialog-new-customer.component.scss'],\r\n templateUrl: './customers-dialog-new-customer.component.html',\r\n})\r\nexport class CustomersDialogNewCustomerComponent implements OnInit {\r\n @ViewChild('priceBreakdownPreview')\r\n private priceBreakdownPreview: PriceBreakdownComponent;\r\n customerForm: FormGroup;\r\n companyInfoDetailOpenState = false;\r\n certificateTypes: CertificateType[] = [];\r\n customerCompanyTypes: CustomerCompanyType[] = [];\r\n pricingTemplates: PricingTemplate[];\r\n feesAndTaxes: FeesAndTaxes[];\r\n aircraftTypes: AircraftType[];\r\n aircraftSizes: AircraftSize[];\r\n step: WizardStep = WizardStep.COMPANY_INFO;\r\n submitting = false;\r\n aircraftType: AircraftType;\r\n\r\n formValueChangesSubscription: Subscription;\r\n combineLatestSubscription: Subscription;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: AircraftResult,\r\n public dialogRef: MatDialogRef,\r\n public closeConfirmationDialog: MatDialog,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerCompanyTypesService: CustomerCompanyTypesService,\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private fboFeesAndTaxesService: FbofeesandtaxesService,\r\n private aircraftsService: AircraftsService,\r\n private customersService: CustomersService,\r\n private customersViewedByFboService: CustomersviewedbyfboService,\r\n private contactInfoByGroupsService: ContactinfobygroupsService,\r\n private customCustomerTypesService: CustomcustomertypesService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private sharedService: SharedService ,\r\n private route : ActivatedRoute,\r\n private formValidationHelperService: FormValidationHelperService\r\n ) {\r\n this.customerForm = new FormGroup({\r\n aircraft: new FormArray([]),\r\n company: new FormGroup({\r\n address: new FormControl(),\r\n certificateType: new FormControl(),\r\n city: new FormControl(),\r\n company: new FormControl('', [Validators.required, this.formValidationHelperService.noWhitespaceValidator]),\r\n country: new FormControl(),\r\n mainPhone: new FormControl(),\r\n state: new FormControl(),\r\n website: new FormControl(),\r\n zipCode: new FormControl(),\r\n }),\r\n contact: new FormArray([]),\r\n template: new FormGroup({\r\n customerMarginTemplate: new FormControl(\r\n undefined,\r\n Validators.required\r\n ),\r\n }),\r\n });\r\n this.addNewContact();\r\n this.addNewAircraft();\r\n\r\n this.formValueChangesSubscription = this.templateFormGroup.valueChanges\r\n .pipe(\r\n switchMap(() =>\r\n this.fboFeesAndTaxesService.getByFboAndPricingTemplate(\r\n this.sharedService.currentUser.fboId,\r\n this.pricingTemplateId\r\n )\r\n )\r\n )\r\n .subscribe((feesAndTaxes) => {\r\n this.feesAndTaxes = feesAndTaxes;\r\n this.recalculatePriceBreakdown();\r\n });\r\n\r\n if (this.data != null) {\r\n this.data.companies.forEach((company) => {\r\n if (company.companyDetailOpenState) {\r\n this.companyFormGroup.get('company').setValue(company.company);\r\n this.companyFormGroup.get('address').setValue(company.companyrelationships[0].companyaddress1);\r\n this.companyFormGroup.get('city').setValue(company.companyrelationships[0].companycity);\r\n this.companyFormGroup.get('country').setValue(company.companyrelationships[0].companycountry);\r\n this.companyFormGroup.get('state').setValue(company.companyrelationships[0].companystateabbr);\r\n this.companyFormGroup.get('zipCode').setValue(company.companyrelationships[0].companypostcode);\r\n\r\n this.aircraftFormArray.controls[0].get(\"tailNumber\").setValue(this.data.regnbr);\r\n this.aircraftFormArray.controls[0].get(\"aircraft\").setValue(this.data.make.toUpperCase() + \" \" + this.data.model.toUpperCase());\r\n\r\n if (company.companyrelationships.length > 0) {\r\n var contactNumber = 1;\r\n\r\n for (var i = 0; i <= company.companyrelationships.length - 1; i++) {\r\n if (company.companyrelationships[i].add && company.companyrelationships[i].contactfirstname != null) {\r\n if (contactNumber == 1) {\r\n this.contactFormArray.controls[contactNumber - 1].get(\"firstName\").setValue(company.companyrelationships[i].contactfirstname);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"lastName\").setValue(company.companyrelationships[i].contactlastname);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"email\").setValue(company.companyrelationships[i].contactemail);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"mobile\").setValue(company.companyrelationships[i].contactmobilephone);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"phone\").setValue(company.companyrelationships[i].contactbestphone);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"title\").setValue(company.companyrelationships[i].contacttitle);\r\n\r\n contactNumber++;\r\n }\r\n else {\r\n this.contactFormArray.push(\r\n new FormGroup({\r\n address: new FormControl(),\r\n city: new FormControl(),\r\n copyAlerts: new FormControl(true),\r\n country: new FormControl(),\r\n email: new FormControl('', [\r\n Validators.required,\r\n Validators.email,\r\n ]),\r\n extension: new FormControl(),\r\n fax: new FormControl(),\r\n firstName: new FormControl(),\r\n lastName: new FormControl(),\r\n mobile: new FormControl(),\r\n phone: new FormControl(),\r\n primary: new FormControl(),\r\n state: new FormControl(),\r\n title: new FormControl(),\r\n })\r\n );\r\n\r\n this.contactFormArray.controls[contactNumber - 1].get(\"firstName\").setValue(company.companyrelationships[i].contactfirstname);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"lastName\").setValue(company.companyrelationships[i].contactlastname);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"email\").setValue(company.companyrelationships[i].contactemail);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"mobile\").setValue(company.companyrelationships[i].contactmobilephone);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"phone\").setValue(company.companyrelationships[i].contactbestphone);\r\n this.contactFormArray.controls[contactNumber - 1].get(\"title\").setValue(company.companyrelationships[i].contacttitle);\r\n\r\n contactNumber++;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n get companyFormGroup() {\r\n return this.customerForm.controls.company as FormGroup;\r\n }\r\n\r\n get contactFormArray() {\r\n return this.customerForm.controls.contact as FormArray;\r\n }\r\n\r\n get templateFormGroup() {\r\n return this.customerForm.controls.template as FormGroup;\r\n }\r\n\r\n get aircraftFormArray() {\r\n return this.customerForm.controls.aircraft as FormArray;\r\n }\r\n\r\n get backDisabled() {\r\n return this.step === WizardStep.COMPANY_INFO;\r\n }\r\n\r\n get nextDisabled() {\r\n return (\r\n (this.step === WizardStep.COMPANY_INFO &&\r\n this.companyFormGroup.invalid) ||\r\n (this.step === WizardStep.CONTACT_INFO &&\r\n this.contactFormArray.invalid) ||\r\n (this.step === WizardStep.ITP_MARGIN_TEMPLATE &&\r\n this.templateFormGroup.invalid) ||\r\n (this.step === WizardStep.AIRCRAFT &&\r\n this.aircraftFormArray.invalid)\r\n );\r\n }\r\n\r\n get submitDisabled() {\r\n return this.customerForm.invalid;\r\n }\r\n\r\n get pricingTemplateId() {\r\n return this.templateFormGroup.get('customerMarginTemplate').value;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.combineLatestSubscription = combineLatest([\r\n this.customerInfoByGroupService.getCertificateTypes(),\r\n this.customerCompanyTypesService.getNonFuelerLinxForFbo(\r\n this.sharedService.currentUser.fboId\r\n ),\r\n this.pricingTemplatesService.getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n ),\r\n this.aircraftsService.getAll(),\r\n this.aircraftsService.getAircraftSizes(),\r\n ]).subscribe(\r\n ([\r\n certificateTypes,\r\n customerCompanyTypes,\r\n pricingTemplates,\r\n aircraftTypes,\r\n aircraftSizes,\r\n ]) => {\r\n this.certificateTypes = certificateTypes;\r\n this.customerCompanyTypes = customerCompanyTypes;\r\n this.pricingTemplates = pricingTemplates;\r\n this.aircraftTypes = aircraftTypes;\r\n this.aircraftSizes = aircraftSizes;\r\n\r\n this.aircraftType = this.aircraftTypes.find(a => a.make.trim() == this.data.make.toUpperCase().trim() && a.model.trim() == this.data.model.toUpperCase().trim());\r\n }\r\n );\r\n }\r\n ngOnDestroy() {\r\n this.combineLatestSubscription?.unsubscribe();\r\n this.formValueChangesSubscription?.unsubscribe();\r\n }\r\n next() {\r\n if (this.step !== WizardStep.AIRCRAFT) {\r\n this.step++;\r\n }\r\n }\r\n\r\n back() {\r\n if (this.step !== WizardStep.COMPANY_INFO) {\r\n this.step--;\r\n }\r\n }\r\n\r\n reset() {\r\n const closeDialogRef = this.closeConfirmationDialog.open(\r\n CloseConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n cancel: 'Cancel',\r\n customText: 'Are you sure to reset changes?',\r\n customTitle: 'Reset Changes?',\r\n ok: 'Reset',\r\n },\r\n }\r\n );\r\n closeDialogRef.afterClosed().subscribe((result) => {\r\n if (result === true) {\r\n this.customerForm.reset();\r\n this.step = WizardStep.COMPANY_INFO;\r\n }\r\n });\r\n }\r\n\r\n cancel() {\r\n const closeDialogRef = this.closeConfirmationDialog.open(\r\n CloseConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n cancel: 'Cancel',\r\n customText: 'You have unsaved changes. Are you sure?',\r\n customTitle: 'Discard Changes?',\r\n ok: 'Discard',\r\n },\r\n }\r\n );\r\n closeDialogRef.afterClosed().subscribe((result) => {\r\n if (result === true) {\r\n this.dialogRef.close();\r\n }\r\n });\r\n }\r\n\r\n addNewContact() {\r\n this.contactFormArray.push(\r\n new FormGroup({\r\n address: new FormControl(),\r\n city: new FormControl(),\r\n copyAlerts: new FormControl(true),\r\n country: new FormControl(),\r\n email: new FormControl('', [\r\n Validators.required,\r\n Validators.email,\r\n ]),\r\n extension: new FormControl(),\r\n fax: new FormControl(),\r\n firstName: new FormControl(),\r\n lastName: new FormControl(),\r\n mobile: new FormControl(),\r\n phone: new FormControl(),\r\n primary: new FormControl(),\r\n state: new FormControl(),\r\n title: new FormControl(),\r\n })\r\n );\r\n }\r\n\r\n addNewAircraft() {\r\n this.aircraftFormArray.push(\r\n new FormGroup({\r\n aircraft: new FormControl(undefined, Validators.required),\r\n aircraftPricingTemplate: new FormControl(),\r\n tailNumber: new FormControl(undefined, Validators.required),\r\n })\r\n );\r\n }\r\n\r\n async submit() {\r\n this.submitting = true;\r\n const customer = await this.customersService\r\n .add(this.companyFormGroup.value)\r\n .toPromise();\r\n await this.customersViewedByFboService\r\n .add({\r\n customerId: customer.oid,\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n })\r\n .toPromise();\r\n const id = this.route.snapshot.paramMap.get('id');\r\n const cig = (await this.customerInfoByGroupService\r\n .add({\r\n ...this.companyFormGroup.value,\r\n customerId: customer.oid,\r\n groupId: this.sharedService.currentUser.groupId,\r\n } , this.sharedService.currentUser.oid)\r\n .toPromise()) as any;\r\n\r\n await this.contactInfoByGroupsService\r\n .addMultiple(\r\n this.sharedService.currentUser.groupId,\r\n customer.oid,\r\n this.contactFormArray.value\r\n )\r\n .toPromise();\r\n\r\n await this.customCustomerTypesService\r\n .add({\r\n customerId: customer.oid,\r\n customerType: this.pricingTemplateId,\r\n fboid: this.sharedService.currentUser.fboId,\r\n })\r\n .toPromise();\r\n\r\n if (this.aircraftFormArray.value[0].tailNumber != null) {\r\n await this.customerAircraftsService\r\n .addMultipleWithTemplate(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n customer.oid,\r\n this.aircraftFormArray.value.map((v) => ({\r\n aircraftId: v.aircraft?.aircraftId ?? this.aircraftType.aircraftId,\r\n pricingTemplateId: v.aircraftPricingTemplate,\r\n size: v.aircraft?.size ?? 0,\r\n tailNumber: v.tailNumber,\r\n }))\r\n )\r\n .toPromise();\r\n }\r\n\r\n this.submitting = false;\r\n\r\n this.dialogRef.close(cig.oid);\r\n }\r\n\r\n stepDisabled(step: WizardStep) {\r\n return (\r\n (step === WizardStep.CONTACT_INFO &&\r\n this.companyFormGroup.invalid) ||\r\n (step === WizardStep.ITP_MARGIN_TEMPLATE &&\r\n (this.companyFormGroup.invalid ||\r\n this.contactFormArray.invalid))\r\n ||\r\n (step === WizardStep.AIRCRAFT &&\r\n (this.companyFormGroup.invalid ||\r\n this.contactFormArray.invalid ||\r\n this.templateFormGroup.invalid))\r\n );\r\n }\r\n\r\n displayAircraft(aircraft: AircraftType) {\r\n return aircraft ? `${aircraft.make} ${aircraft.model}` : null;\r\n }\r\n\r\n private recalculatePriceBreakdown(): void {\r\n // Set a timeout so the child component is aware of model changes\r\n const self = this;\r\n setTimeout(() => {\r\n self.priceBreakdownPreview.performRecalculation();\r\n });\r\n }\r\n}\r\n","
\r\n

Add a New Customer

\r\n
\r\n \r\n \r\n
Company Information
\r\n\r\n
\r\n
\r\n \r\n \r\n Company name is required.\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ certificateType.description }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Address Detail \r\n \r\n Click to\r\n {{\r\n companyInfoDetailOpenState ? \"close\" : \"expand\"\r\n }}.\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\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 Information {{ i === 0 ? \"\" : i + 1 }}\r\n\r\n 0 && contactFormArray.controls.length == 1) || (contactFormArray.controls.length > 1)\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"contactFormArray.removeAt(i)\"\r\n >\r\n delete_forever\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n Invalid Email Address.\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n Copy on Distribution\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n AddressAdditional Detail\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
Price & Margin Information
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ pricingTemplate.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
Aircraft Information
\r\n\r\n \r\n \r\n
\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\"\r\n mat-icon-button\r\n color=\"warn\"\r\n (click)=\"aircraftFormArray.removeAt(i)\"\r\n >\r\n delete_forever\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n Add Contact\r\n \r\n\r\n \r\n Add Aircraft\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Back\r\n \r\n \r\n Next\r\n \r\n \r\n {{ submitting ? \"\" : \"Submit\" }}\r\n \r\n \r\n
\r\n
\r\n\r\n","import { SharedService } from './../../../layouts/shared-service';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-customers-edit-dialog',\r\n templateUrl: './customers-edit-dialog.component.html'\r\n})\r\nexport class CustomersEditDialogComponent implements OnInit {\r\n public customerInfoByGroupId: number;\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n this.customerInfoByGroupId = data.customerInfoByGroupId;\r\n }\r\n\r\n 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
\r\n
\r\n","import { Component, OnInit, ViewChild, Input } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\nimport { combineLatest, EMPTY, of } from 'rxjs';\r\nimport { catchError, debounceTime, map, switchMap } from 'rxjs/operators';\r\nimport { CustomermarginsService } from 'src/app/services/customermargins.service';\r\nimport { TagsService } from 'src/app/services/tags.service';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomerInfoByGroupNote } from '../../../models/customer-info-by-group-note';\r\nimport { ContactinfobyfboService } from '../../../services/contactinfobyfbo.service';\r\nimport { ContactinfobygroupsService } from '../../../services/contactinfobygroups.service';\r\nimport { ContactsService } from '../../../services/contacts.service';\r\n// Services\r\nimport { CustomcustomertypesService } from '../../../services/customcustomertypes.service';\r\nimport { CustomerCompanyTypesService } from '../../../services/customer-company-types.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\nimport { CustomercontactsService } from '../../../services/customercontacts.service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { CustomersviewedbyfboService } from '../../../services/customersviewedbyfbo.service';\r\nimport { FbofeeandtaxomitsbycustomerService } from '../../../services/fbofeeandtaxomitsbycustomer.service';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { PriceBreakdownComponent } from '../../../shared/components/price-breakdown/price-breakdown.component';\r\nimport { ContactsDialogNewContactComponent } from '../../contacts/contacts-edit-modal/contacts-edit-modal.component';\r\n// Components\r\nimport { CustomerCompanyTypeDialogComponent } from '../customer-company-type-dialog/customer-company-type-dialog.component';\r\nimport { CustomerTagDialogComponent } from '../customer-tag-dialog/customer-tag-dialog.component';\r\n\r\n@Component({\r\n selector: 'app-customers-edit',\r\n styleUrls: ['./customers-edit.component.scss'],\r\n templateUrl: './customers-edit.component.html',\r\n})\r\nexport class CustomersEditComponent implements OnInit {\r\n @Input() customerInfoByGroupId: number = 0;\r\n @Input() showBreadCrumb: boolean = true;\r\n @Input() showAircraftTab: boolean = true;\r\n @Input() showPricingTab: boolean = true;\r\n @Input() showAnalyticsTab: boolean = true;\r\n @Input() showHistoryTab: boolean = true;\r\n @Input() showClose: boolean = true;\r\n\r\n @ViewChild('priceBreakdownPreview')\r\n private priceBreakdownPreview: PriceBreakdownComponent;\r\n // Members\r\n pageTitle = 'Edit Customer';\r\n customerInfoByGroup: any;\r\n customerInfoByGroupNote: CustomerInfoByGroupNote;\r\n contactsData: any[];\r\n pricingTemplatesData: any[];\r\n customerAircraftsData: any[];\r\n selectedContactRecord: any;\r\n currentContactInfoByGroup: any;\r\n customCustomerType: any;\r\n certificateTypes: any[];\r\n selectedIndex: any = 0;\r\n customerCompanyTypes: any[];\r\n customerForm: FormGroup;\r\n public customerHistory: any;\r\n feesAndTaxes: Array;\r\n isEditing: boolean = false;\r\n public customerId: number;\r\n tags: any[];\r\n tagsSelected: any[] = [];\r\n tagSubsctiption: Subscription;\r\n loading: boolean = false;\r\n Historyupdate: boolean = false;\r\n isLoadingHistory: boolean = true;\r\n searchText: string = \"\";\r\n\r\n routeSubscription: Subscription;\r\n formValueChangesSubscription: Subscription[] = [];\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private customCustomerTypesService: CustomcustomertypesService,\r\n private contactInfoByGroupsService: ContactinfobygroupsService,\r\n private contactsService: ContactsService,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerContactsService: CustomercontactsService,\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private sharedService: SharedService,\r\n private customerCompanyTypesService: CustomerCompanyTypesService,\r\n private customersViewedByFboService: CustomersviewedbyfboService,\r\n private dialog: MatDialog,\r\n private newContactDialog: MatDialog,\r\n private fboFeesAndTaxesService: FbofeesandtaxesService,\r\n private fboFeeAndTaxOmitsbyCustomerService: FbofeeandtaxomitsbycustomerService,\r\n private snackBar: MatSnackBar,\r\n private tagsService: TagsService,\r\n private contactInfoByFboService: ContactinfobyfboService\r\n ) {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n \r\n\r\n this.routeSubscription = this.route.queryParams.subscribe((params) => {\r\n if (params.tab) {\r\n this.selectedIndex = parseInt(params.tab);\r\n }\r\n\r\n if (params.search) {\r\n this.searchText = params.search;\r\n }\r\n });\r\n }\r\n\r\n async ngOnInit() {\r\n if (this.customerInfoByGroupId == 0)\r\n this.customerInfoByGroupId = parseInt(this.route.snapshot.paramMap.get('id'));\r\n this.customerInfoByGroup = await this.customerInfoByGroupService\r\n .get({ oid: this.customerInfoByGroupId })\r\n .toPromise();\r\n this.customerId = this.customerInfoByGroup.customerId;\r\n\r\n //Grab the appropriate note\r\n var notesForGroup = this.customerInfoByGroup?.notes?.filter(x => !x.fboId || x.fboId == 0);\r\n this.customerInfoByGroupNote = notesForGroup && notesForGroup.length > 0 ? notesForGroup[0] : null;\r\n if (this.customerInfoByGroupNote == null) {\r\n this.customerInfoByGroupNote = {\r\n oid: 0,\r\n fboId: 0,\r\n customerInfoByGroupId: this.customerInfoByGroup.oid,\r\n notes: '',\r\n lastUpdatedByUserId: this.sharedService.currentUser.oid\r\n };\r\n this.customerInfoByGroup.notes.push(this.customerInfoByGroupNote);\r\n }\r\n\r\n const results = await combineLatest([\r\n //0\r\n this.customerInfoByGroupService.getCertificateTypes(),\r\n //1\r\n this.pricingTemplatesService.getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n ),\r\n //2\r\n this.contactInfoByGroupsService.getCustomerContactInfoByGroup(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.customerInfoByGroup.customerId\r\n ),\r\n //3\r\n this.customerAircraftsService.getCustomerAircraftsByGroupAndCustomerId(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.customerInfoByGroup.customerId\r\n ),\r\n //4\r\n this.customCustomerTypesService.getForFboAndCustomer(\r\n this.sharedService.currentUser.fboId,\r\n this.customerInfoByGroup.customerId\r\n ),\r\n //5\r\n this.customerCompanyTypesService.getNonFuelerLinxForFbo(\r\n this.sharedService.currentUser.fboId\r\n ),\r\n //6\r\n this.customerInfoByGroupService.getCustomerLogger(this.customerInfoByGroupId,\r\n this.sharedService.currentUser.fboId),\r\n\r\n this.customersViewedByFboService.add({\r\n customerId: this.customerInfoByGroup.customerId,\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n }),\r\n\r\n\r\n\r\n ]).toPromise();\r\n\r\n this.certificateTypes = results[0] as any[];\r\n this.pricingTemplatesData = results[1] as any[];\r\n this.contactsData = results[2] as any[];\r\n this.customerAircraftsData = results[3] as any[];\r\n this.customCustomerType = results[4];\r\n this.customerCompanyTypes = results[5] as any[];\r\n this.customerHistory = results[6] as any [];\r\n\r\n this.customerForm = this.formBuilder.group({\r\n active: [this.customerInfoByGroup.active],\r\n address: [this.customerInfoByGroup.address],\r\n certificateType: [this.customerInfoByGroup.certificateType],\r\n city: [this.customerInfoByGroup.city],\r\n company: [this.customerInfoByGroup.company],\r\n country: [this.customerInfoByGroup.country],\r\n customerCompanyType: [this.customerInfoByGroup.customerCompanyType],\r\n customerMarginTemplate: [this.customCustomerType.customerType],\r\n distribute: [this.customerInfoByGroup.distribute],\r\n mainPhone: [this.customerInfoByGroup.mainPhone],\r\n show100Ll: [this.customerInfoByGroup.show100Ll],\r\n showJetA: [this.customerInfoByGroup.showJetA],\r\n state: [this.customerInfoByGroup.state],\r\n website: [this.customerInfoByGroup.website],\r\n zipCode: [this.customerInfoByGroup.zipCode],\r\n customerTag: [this.customerInfoByGroup.customerTag],\r\n editableNote: [this.customerInfoByGroupNote.notes]\r\n });\r\n\r\n this.customerForm.valueChanges\r\n .pipe(\r\n map(() => {\r\n\r\n }),\r\n debounceTime(500),\r\n switchMap(async () => {\r\n this.isEditing = true;\r\n const customerInfoByGroup = {\r\n ...this.customerInfoByGroup,\r\n ...this.customerForm.value,\r\n };\r\n //Null the notes collection to prevent EF from saving the entire collection\r\n customerInfoByGroup.notes = null;\r\n\r\n this.customCustomerType.customerType =\r\n this.customerForm.value.customerMarginTemplate;\r\n\r\n this.saveNotes();\r\n\r\n await this.customerInfoByGroupService\r\n .update(customerInfoByGroup , this.sharedService.currentUser.oid)\r\n .toPromise();\r\n if (\r\n !this.customCustomerType.oid ||\r\n this.customCustomerType.oid === 0\r\n ) {\r\n await this.customCustomerTypesService\r\n .add(this.customCustomerType)\r\n .toPromise();\r\n } else {\r\n await this.customCustomerTypesService\r\n .update(this.customCustomerType , this.sharedService.currentUser.oid)\r\n .toPromise();\r\n }\r\n\r\n this.customerInfoByGroup = customerInfoByGroup;\r\n this.isEditing = false;\r\n\r\n }),\r\n catchError((err: Error) => {\r\n console.error(err);\r\n this.snackBar.open(err.message, '', {\r\n duration: 5000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n this.isEditing = false;\r\n return of(EMPTY);\r\n })\r\n )\r\n .subscribe( scusess => {this.loadCustomerHistory();});\r\n\r\n let customerCompanyTypeSubscription = this.customerForm.controls.customerCompanyType.valueChanges.subscribe(\r\n (type) => {\r\n if (type < 0) {\r\n this.customerCompanyTypeChanged();\r\n this.loadCustomerHistory();\r\n }\r\n }\r\n );\r\n this.formValueChangesSubscription.push(customerCompanyTypeSubscription);\r\n\r\n let customerMarginTemplateValueChangeSubscription = this.customerForm.controls.customerMarginTemplate.valueChanges.subscribe(\r\n (selectedValue) => {\r\n this.loadCustomerHistory();\r\n this.customCustomerType.customerType = selectedValue;\r\n this.recalculatePriceBreakdown();\r\n\r\n }\r\n );\r\n this.formValueChangesSubscription.push(customerMarginTemplateValueChangeSubscription);\r\n this.loadCustomerFeesAndTaxes();\r\n this.loadCustomerTags();\r\n this.checkAircraftsForCompanyPricing();\r\n }\r\n ngOnDestroy() {\r\n this.formValueChangesSubscription.forEach(subscription => {\r\n subscription?.unsubscribe();\r\n }); \r\n this.tagSubsctiption?.unsubscribe();\r\n this.routeSubscription?.unsubscribe();\r\n }\r\n loadCustomerHistory()\r\n {\r\n this.sharedService.updatedHistory.next(true);\r\n\r\n }\r\n\r\n get isMember() {\r\n return this.sharedService.currentUser.role === 4;\r\n }\r\n\r\n // Methods\r\n cancelCustomerEdit() {\r\n this.router.navigate(['/default-layout/customers/']).then();\r\n }\r\n\r\n contactDeleted(contact) {\r\n this.contactInfoByGroupsService\r\n .remove(contact.contactInfoByGroupId, this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.customerContactsService\r\n .remove(contact.customerContactId, this.sharedService.currentUser.oid)\r\n .subscribe((data) => {\r\n\r\n this.contactsService.update(data).subscribe();\r\n const index = this.contactsData.findIndex(\r\n (d) =>\r\n d.customerContactId ===\r\n contact.customerContactId\r\n ); // find index in your array\r\n this.contactsData.splice(index, 1); // remove element from array\r\n });\r\n\r\n this.loadCustomerHistory();\r\n });\r\n }\r\n\r\n newContactClicked() {\r\n this.selectedContactRecord = null;\r\n this.currentContactInfoByGroup = {\r\n contactId: 0,\r\n copyAlerts: true,\r\n email: '',\r\n groupId: this.sharedService.currentUser.groupId,\r\n oid: 0,\r\n };\r\n\r\n const dialogRef = this.newContactDialog.open(\r\n ContactsDialogNewContactComponent,\r\n {\r\n data: this.currentContactInfoByGroup,\r\n disableClose: true\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result !== 'cancel') {\r\n if (this.currentContactInfoByGroup.contactId === 0) {\r\n this.contactsService\r\n .add({ oid: 0 })\r\n .subscribe((data: any) => {\r\n\r\n this.currentContactInfoByGroup.contactId = data.oid;\r\n this.saveContactInfoByGroup();\r\n this.loadCustomerHistory();\r\n });\r\n } else {\r\n this.saveContactInfoByGroup();\r\n this.loadCustomerHistory();\r\n\r\n }\r\n } else {\r\n this.loadCustomerContacts();\r\n this.loadCustomerHistory();\r\n\r\n }\r\n });\r\n }\r\n\r\n updateCustomerPricingTemplate(pricingTemplateId: number) {\r\n if (this.customCustomerType) {\r\n this.customCustomerType.customerType = pricingTemplateId;\r\n this.loadCustomerHistory();\r\n }\r\n\r\n }\r\n\r\n customerCompanyTypeChanged() {\r\n const data = {\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n };\r\n const dialogRef = this.dialog.open(CustomerCompanyTypeDialogComponent, {\r\n data,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((response) => {\r\n if (!response) {\r\n return;\r\n }\r\n this.customerCompanyTypesService\r\n .add(response)\r\n .subscribe((result: any) => {\r\n this.customerCompanyTypes.push(result);\r\n this.customerForm.patchValue({\r\n customerCompanyType: result.oid,\r\n });\r\n this.loadCustomerHistory();\r\n });\r\n });\r\n }\r\n\r\n addCustomerTag(tag) {\r\n this.loading = true;\r\n tag['groupId'] = this.sharedService.currentUser.groupId;\r\n tag['customerId'] = this.customerInfoByGroup.customerId;\r\n tag['oid'] = 0;\r\n this.tagsService.add(tag).subscribe(response => {\r\n this.loading = false;\r\n this.tagSubsctiption.unsubscribe();\r\n this.loadCustomerTags();\r\n });\r\n }\r\n\r\n removeCustomerTag(tag) {\r\n this.loading = true;\r\n this.tagsSelected = this.tagsSelected.filter(obj => obj.oid !== tag.oid);\r\n this.tagsService.remove(tag).subscribe(response => {\r\n this.loading = false;\r\n this.tagSubsctiption.unsubscribe();\r\n this.loadCustomerTags();\r\n })\r\n }\r\n\r\n newCustomTag() {\r\n const data = {\r\n customerId: this.customerInfoByGroup.customerId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n };\r\n const dialogRef = this.dialog.open(CustomerTagDialogComponent, {\r\n data,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((response) => {\r\n if (!response) {\r\n return;\r\n }\r\n this.tagsService\r\n .add(response)\r\n .subscribe((result: any) => {\r\n this.loadCustomerTags();\r\n });\r\n });\r\n }\r\n\r\n toggleChange($event) {\r\n if ($event.checked) {\r\n this.customerInfoByGroup.showJetA = true;\r\n this.customerInfoByGroup.show100Ll = true;\r\n this.customerInfoByGroup.distribute = true;\r\n } else {\r\n this.customerInfoByGroup.showJetA = false;\r\n this.customerInfoByGroup.show100Ll = false;\r\n this.customerInfoByGroup.distribute = false;\r\n }\r\n }\r\n\r\n omitFeeAndTaxCheckChanged(feeAndTax: any): void {\r\n if (!feeAndTax.omitsByCustomer) {\r\n feeAndTax.omitsByCustomer = [];\r\n }\r\n let matchingOmitRecords = feeAndTax.omitsByCustomer.filter(x => x.customerId == this.customerInfoByGroup.customerId &&\r\n x.fboFeeAndTaxId == feeAndTax.oid);\r\n let omitRecord: any = {\r\n customerId: this.customerInfoByGroup.customerId,\r\n fboFeeAndTaxId: feeAndTax.oid,\r\n oid: 0,\r\n };\r\n if (matchingOmitRecords && matchingOmitRecords.length > 0) {\r\n omitRecord = matchingOmitRecords[0];\r\n } else {\r\n feeAndTax.omitsByCustomer.push(omitRecord);\r\n }\r\n //if (feeAndTax.omitsByCustomer.length > 0) {\r\n // omitRecord = feeAndTax.omitsByCustomer[0];\r\n //} else {\r\n // feeAndTax.omitsByCustomer.push(omitRecord);\r\n //}\r\n //omitRecord.fboFeeAndTaxId = feeAndTax.oid;\r\n if (feeAndTax.isOmitted) {\r\n this.fboFeeAndTaxOmitsbyCustomerService\r\n .add(omitRecord)\r\n .subscribe((response: any) => {\r\n omitRecord.oid = response.oid;\r\n this.recalculatePriceBreakdown();\r\n });\r\n } else {\r\n this.fboFeeAndTaxOmitsbyCustomerService\r\n .remove(omitRecord)\r\n .subscribe(() => {\r\n feeAndTax.omitsByCustomer = [];\r\n this.recalculatePriceBreakdown();\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n public priceBreakdownCalculationsCompleted(\r\n calculationResults: any[]\r\n ): void {\r\n if (!calculationResults || !calculationResults.length) {\r\n return;\r\n }\r\n\r\n try {\r\n calculationResults[0].pricingList[0].feesAndTaxes.forEach(calculatedTax => {\r\n var matchingTaxes = this.feesAndTaxes.filter(feeAndTax => feeAndTax.oid == calculatedTax.oid);\r\n if (matchingTaxes && matchingTaxes.length > 0)\r\n matchingTaxes[0].omittedFor = calculatedTax.omittedFor;\r\n });\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n tabClick(selectedTab) {\r\n const tab = selectedTab.tab.textLabel;\r\n if (tab === \"History\") {\r\n this.isLoadingHistory = true;\r\n this.sharedService.updatedHistory.subscribe(\r\n update => {\r\n if (update == true) {\r\n this.customerInfoByGroupService.getCustomerLogger(this.customerInfoByGroupId, this.sharedService.currentUser.fboId).subscribe(\r\n data => {\r\n this.customerHistory = data;\r\n this.isLoadingHistory = false;\r\n }\r\n )\r\n }\r\n }\r\n )\r\n }\r\n }\r\n\r\n // Private Methods\r\n private recalculatePriceBreakdown(): void {\r\n // Set a timeout so the child component is aware of model changes\r\n const self = this;\r\n setTimeout(() => {\r\n self.priceBreakdownPreview.performRecalculation();\r\n });\r\n }\r\n\r\n private loadCustomerContacts() {\r\n this.contactInfoByGroupsService\r\n .getCustomerContactInfoByGroup(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.customerInfoByGroup.customerId,\r\n )\r\n .subscribe((data: any) => {\r\n this.contactsData = data;\r\n this.currentContactInfoByGroup = null;\r\n if (!this.contactsData) {\r\n return;\r\n }\r\n });\r\n\r\n this.loadCustomerHistory();\r\n }\r\n isOptionDisabled(opt: any): boolean {\r\n return this.tagsSelected.length >= 10 && !this.tagsSelected.find(el => el.oid == opt)\r\n }\r\n\r\n private loadCustomerTags() {\r\n this.tagsService.getTags({\r\n groupId: this.sharedService.currentUser.groupId,\r\n customerId: this.customerInfoByGroup.customerId,\r\n isFuelerLinx: this.customerInfoByGroup.customer.fuelerlinxId > 0 ? true : false\r\n })\r\n .subscribe((data: any) => {\r\n this.tags = data;\r\n this.tagsSelected = this.tags.filter(x => x.customerId == this.customerInfoByGroup.customerId);\r\n this.customerForm.controls.customerTag.setValue(this.tagsSelected.map(x => x.oid));\r\n\r\n this.tagSubsctiption = this.customerForm.controls.customerTag.valueChanges.subscribe(\r\n (selectedValue) => {\r\n if (selectedValue.includes(-1)) {\r\n this.newCustomTag();\r\n this.customerForm.controls.customerTag\r\n .setValue(this.customerForm.controls.customerTag.value.filter(function(item) {\r\n return item !== -1\r\n }));\r\n } else {\r\n let addTags = this.tags.filter(x => selectedValue.includes(x.oid) && x.customerId != this.customerInfoByGroup.customerId);\r\n let removeTags = this.tags.filter(x => !selectedValue.includes(x.oid) && x.customerId == this.customerInfoByGroup.customerId);\r\n for (const tag of addTags) {\r\n this.addCustomerTag(tag);\r\n }\r\n\r\n for (const tag of removeTags) {\r\n this.removeCustomerTag(tag);\r\n }\r\n }\r\n }\r\n );\r\n if (!this.tags) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n private saveContactInfoByGroup() {\r\n if (this.currentContactInfoByGroup.oid === 0) {\r\n var currentContactInfoByGroup = this.currentContactInfoByGroup;\r\n if (currentContactInfoByGroup.copyAlerts)\r\n currentContactInfoByGroup.CopyAlerts = false;\r\n\r\n this.contactInfoByGroupsService\r\n .add(this.currentContactInfoByGroup, this.sharedService.currentUser.oid, this.customerInfoByGroup.customerId)\r\n .subscribe((data: any) => {\r\n this.currentContactInfoByGroup.oid = data.oid;\r\n this.saveCustomerContact();\r\n\r\n });\r\n }\r\n this.loadCustomerHistory();\r\n }\r\n\r\n private saveCustomerContact() {\r\n if (!this.selectedContactRecord) {\r\n this.customerContactsService\r\n .add({\r\n contactId: this.currentContactInfoByGroup.contactId,\r\n customerId: this.customerInfoByGroup.customerId,\r\n } , this.sharedService.currentUser.oid)\r\n .subscribe(() => {\r\n this.UpdateCopyAlerts(this.currentContactInfoByGroup);\r\n });\r\n } else {\r\n this.UpdateCopyAlerts(this.currentContactInfoByGroup);\r\n\r\n }\r\n }\r\n\r\n private UpdateCopyAlerts(contact) {\r\n this.addCustomerInfoByFbo(contact);\r\n }\r\n\r\n private addCustomerInfoByFbo(contact) {\r\n var contactInfoByFbo = {\r\n ContactId: contact.contactId,\r\n FboId: this.sharedService.currentUser.fboId,\r\n CopyAlerts: contact.copyAlerts\r\n };\r\n\r\n this.contactInfoByFboService\r\n .add(contactInfoByFbo)\r\n .subscribe((data: any) => {\r\n this.loadCustomerContacts();\r\n });\r\n }\r\n\r\n private loadCustomerFeesAndTaxes(): void {\r\n this.fboFeesAndTaxesService\r\n .getByFboAndCustomer(\r\n this.sharedService.currentUser.fboId,\r\n this.customerInfoByGroup.customerId\r\n )\r\n .subscribe((response: any[]) => {\r\n this.feesAndTaxes = response;\r\n });\r\n }\r\n\r\n private checkAircraftsForCompanyPricing(): void {\r\n this.customerAircraftsData.forEach((result) => {\r\n if (result.isCompanyPricing) {\r\n result.pricingTemplateId = null;\r\n }\r\n });\r\n }\r\n\r\n private saveNotes(): void {\r\n if (this.customerInfoByGroupNote == null)\r\n return;\r\n this.customerInfoByGroupNote.lastUpdatedByUserId = this.sharedService.currentUser.oid;\r\n if (this.customerInfoByGroupNote.oid > 0) {\r\n this.customerInfoByGroupService.updateCustomerInfoByGroupNote(this.customerInfoByGroupNote).subscribe((data: any) => { });\r\n } else {\r\n this.customerInfoByGroupService.addCustomerInfoByGroupNote(this.customerInfoByGroupNote).subscribe((data: any) => {\r\n this.customerInfoByGroupNote.oid = data.oid;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n

\r\n
\r\n
\r\n {{\r\n customerForm.value.company\r\n }}\r\n \r\n
\r\n
\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
General Information
\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 {{ tag.name }}\r\n cancel\r\n \r\n \r\n \r\n\r\n \r\n {{ tag.name }}\r\n \r\n \r\n <Add Custom>\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{\r\n certificateType.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 \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n\r\n\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
Price & Margin Information
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Margin Template
\r\n \r\n \r\n \r\n {{\r\n pricingTemplate.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","import {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatPaginator } from '@angular/material/paginator';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatSort, SortDirection } from '@angular/material/sort';\nimport { ActivatedRoute } from '@angular/router';\nimport { find, forEach, sortBy } from 'lodash';\nimport { MultiSelect } from 'primeng/multiselect';\nimport { Subscription } from 'rxjs';\nimport { csvFileOptions, GridBase } from 'src/app/services/tables/GridBase';\nimport { TagsService } from 'src/app/services/tags.service';\n\nimport { SharedService } from '../../../layouts/shared-service';\nimport * as SharedEvents from '../../../constants/sharedEvents';\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\nimport { CustomermarginsService } from '../../../services/customermargins.service';\n// Services\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\nimport { PriceBreakdownComponent } from '../../../shared/components/price-breakdown/price-breakdown.component';\nimport {\n ColumnType,\n TableSettingsComponent,\n} from '../../../shared/components/table-settings/table-settings.component';\nimport { CustomerGridState } from '../../../store/reducers/customer';\nimport { CustomerTagDialogComponent } from '../customer-tag-dialog/customer-tag-dialog.component';\n// Components\nimport { CustomersDialogNewCustomerComponent } from '../customers-dialog-new-customer/customers-dialog-new-customer.component';\nimport { CallbackComponent } from 'src/app/shared/components/favorite-icon/favorite-icon.component';\nimport { CurrencyPresicionPipe } from 'src/app/shared/pipes/decimal/currencyPresicion.pipe';\nimport { CloseConfirmationComponent } from '../../../shared/components/close-confirmation/close-confirmation.component';\r\nimport { ContactinfobyfboService } from '../../../services/contactinfobyfbo.service';\r\n\nconst initialColumns: ColumnType[] = [\n {\n id: 'selectAll',\n name: 'Select All',\n },\n {\n id: 'company',\n name: 'Company',\n sort: 'asc',\n },\n {\n id: 'actionStatus',\n name: 'Action Status',\n },\n {\n id: 'pricingTemplateName',\n name: 'ITP Margin Template',\n },\n {\n id: 'pricingFormula',\n name: 'PricingFormula',\n },\n {\n id: 'allInPrice',\n name: 'All In Price',\n },\n {\n id: 'tags',\n name: 'Tags',\n },\n {\n id: 'isFuelerLinxCustomer',\n name: 'FuelerLinx Network',\n },\n {\n id: 'fleetSize',\n name: 'Fleet Size',\n },\n {\n id: 'fuelVendors',\n name: 'Fuel Vendors',\n },\n {\n id: 'certificateTypeDescription',\n name: 'Certificate Type',\n },\n {\n id: 'delete',\n name: 'Actions',\n },\n {\n id: 'invoiceEmail',\n name: 'Invoice Email',\n }\n];\n\n@Component({\n selector: 'app-customers-grid',\n styleUrls: ['./customers-grid.component.scss'],\n templateUrl: './customers-grid.component.html',\n})\nexport class CustomersGridComponent extends GridBase implements OnInit {\n @ViewChild('priceBreakdownPreview')\n priceBreakdownPreview: PriceBreakdownComponent;\n @ViewChild('customerTableContainer') table: ElementRef;\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\n @ViewChild(MatSort, { static: true }) sort: MatSort;\n @ViewChild(\"multiInput\") multiInput: MultiSelect;\n // Input/Output Bindings\n @Input() customersData: any[];\n @Input() pricingTemplatesData: any[];\n @Input() aircraftData: any[];\n @Input() customerGridState: CustomerGridState;\n @Input() fuelVendors: any[];\n @Input () tags : any [];\n\n @Output() editCustomerClicked = new EventEmitter();\n @Output() customerDeleted = new EventEmitter();\n @Output() customerPriceClicked = new EventEmitter();\n @Output() exportAircraftClick = new EventEmitter();\n @Output() refreshAircrafts = new EventEmitter();\n @Output() onCompanyFilterApplied = new EventEmitter();\n\n // Members\n tableLocalStorageKey = 'customer-manager-table-settings';\n\n customerFilterType: number = 0;\n selectAll = false;\n selectedRows: number;\n columns: ColumnType[] = [];\n airportWatchStartDate: Date = new Date();\n needsAttentionOptions: any[];\n\n /*LICENSE_KEY = '9eef62bd-4c20-452c-98fd-aa781f5ac111';*/\n dialogOpen : boolean = false;\n results = '[]';\n\n feesAndTaxes: any[];\n focusedCustomer: any;\n\n feesAndTaxesSubscription: Subscription;\n\n /*private importer: FlatFileImporter;*/\n customersCsvOptions: csvFileOptions = { fileName: 'Customers', sheetName: 'Customers' };\n aircraftCsvOptions: csvFileOptions = { fileName: 'Aircraft', sheetName: 'Aircraft' };\n\n start: number = 0;\n limit: number = 20;\n end: number = this.limit + this.start;\n\n sortChangeSubscription: Subscription;\n constructor(\n private newCustomerDialog: MatDialog,\n private deleteCustomerDialog: MatDialog,\n private tableSettingsDialog: MatDialog,\n private sharedService: SharedService,\n private customerInfoByGroupService: CustomerinfobygroupService,\n private customerMarginsService: CustomermarginsService,\n private fboFeesAndTaxesService: FbofeesandtaxesService,\n private tagsService: TagsService,\n private dialog: MatDialog ,\n private route : ActivatedRoute,\n private currencyPresicion: CurrencyPresicionPipe,\n public closeConfirmationDialog: MatDialog,\n public contactInfoByFboService: ContactinfobyfboService\n ) { super(); }\n ngOnChanges(changes: SimpleChanges): void {\n if(changes.customersData){\n //this.addContactToCustomerDataList();\n this.setVirtualScrollVariables(this.paginator, this.sort, this.customersData);\n this.refreshCustomerDataSource();\n }\n }\n ngOnInit() {\n /*this.initializeImporter();*/\n if (this.customerGridState.filterType) {\n this.customerFilterType = this.customerGridState.filterType;\n }\n\n this.columns = this.getClientSavedColumns(this.tableLocalStorageKey, initialColumns);\n\n if (this.customerGridState.filter) {\n this.dataSource.filterCollection = JSON.parse(\n this.customerGridState.filter\n );\n }\n //if (this.customerGridState.order) {\n // this.sort.active = this.customerGridState.order;\n //}\n //if (this.customerGridState.orderBy) {\n // this.sort.direction = this.customerGridState\n // .orderBy as SortDirection;\n //}\n this.airportWatchStartDate = new Date(\"10/6/2022\");\n\n var needsAttentionOptionsList = ['Email Required', 'Setup Required', 'Top Customer']\n this.needsAttentionOptions = needsAttentionOptionsList.map((nl) => ({\n label: nl,\n value: nl,\n }));\n }\n ngOnDestroy() {\n this.sortChangeSubscription?.unsubscribe();\n }\n // Methods\n addContactToCustomerDataList(){\n this.customersData.forEach(c => {\n c['email'] = c.contacts.map(x => x.email).join(' ');\n c['firstName'] = c.contacts.map(x => x.firstName).join(' ');\n c['lastName'] = c.contacts.map(x => x.lastName).join(' ');\n });\n }\n deleteCustomer(customer) {\n const dialogRef = this.deleteCustomerDialog.open(\n DeleteConfirmationComponent,\n {\n autoFocus: false,\n data: { description: 'customer', item: customer },\n }\n );\n\n dialogRef.afterClosed().subscribe((result) => {\n if (!result) {\n return;\n }\n this.customerInfoByGroupService\n .remove({ oid: result.item.customerInfoByGroupId } )\n .subscribe(() => {\n this.customerDeleted.emit();\n });\n });\n }\n\n editCustomer(customer) {\n\n this.editCustomerClicked.emit({\n customerInfoByGroupId: customer.customerInfoByGroupId,\n filter: this.dataSource.filter,\n filterType: this.customerFilterType,\n order: this.dataSource?.sort?.active,\n orderBy: this.dataSource?.sort?.direction,\n page: this.dataSource.paginator?.pageIndex,\n });\n }\n\n selectAction() {\n forEach( this.dataSource.filteredData, (customer) => {\n customer.selectAll = this.selectAll;\n });\n this.selectedRows = this.selectAll ? this.dataSource.data.length : 0;\n }\n\n selectUnique() {\n if (this.selectedRows === this.customersData.length) {\n this.selectAll = false;\n this.selectedRows = this.selectedRows - 1;\n }\n }\n\n newCustomer() {\n const dialogRef = this.newCustomerDialog.open(\n CustomersDialogNewCustomerComponent,\n {\n height: '500px',\n width: '1140px',\n }\n );\n\n dialogRef.afterClosed().subscribe((customerInfoByGroupId) => {\n if (!customerInfoByGroupId) {\n return;\n }\n this.editCustomer({\n customerInfoByGroupId,\n });\n });\n }\n\n exportCustomersToExcel(exportSelectedCustomers: boolean = false) {\n let computePropertyFnc = (item: any[], id: string): any => {\n if(id == \"allInPrice\")\n return this.getAllIPriceDisplayString(item);\n else if(id == \"isFuelerLinxCustomer\")\n return this.getIsInNetworkDisplayString(item);\n else if(id == \"tags\")\n return item[id].map(x => x.name).join(', ');\n else if(id == \"fuelVendors\")\n return item[id].map(x => x.label).join(', ');\n else if(id == \"actionStatus\"){\n return this.getNeedsAttentionDisplayString(item);\n }\n else\n return null;\n }\n this.exportCsvFile(this.columns,this.customersCsvOptions.fileName,this.customersCsvOptions.sheetName,computePropertyFnc,exportSelectedCustomers);\n }\n getNeedsAttentionDisplayString(customer: any): any{\n let message = customer.customerNeedsAttention;\n return message;\n }\n getAllIPriceDisplayString(customer: any): any{\n return customer.allInPrice > 0 ? this.currencyPresicion.transform(customer.allInPrice) : customer.isPricingExpired == true ? \"Expired\" : \"N/A\";\n }\n getIsInNetworkDisplayString(customer: any): any{\n return customer.isFuelerLinxCustomer ? \"YES\" : \"NO\"\n }\n exportCustomerAircraftToExcel() {\n this.exportAircraftClick.emit();\n }\n\n customerFilterTypeChanged() {\n this.refreshCustomerDataSource();\n }\n\n onMarginChange(changedPricingTemplateId: any, customer: any) {\n let vm = {\n fboid: this.sharedService.currentUser.fboId,\n id: customer.customerId,\n pricingTemplateId: 0,\n userId: this.sharedService.currentUser.oid\n };\n\n if (changedPricingTemplateId > 0) {\n const changedPricingTemplate = find(\n this.pricingTemplatesData,\n (p) => p.oid === parseInt(changedPricingTemplateId, 10)\n );\n\n //customer.needsAttention = changedPricingTemplate.default;\n\n //if (customer.needsAttention) {\n // customer.needsAttentionReason =\n // 'Customer was assigned to the default template and has not been changed yet.';\n //}\n\n customer.pricingFormula = changedPricingTemplate.pricingFormula;\n customer.allInPrice = changedPricingTemplate.allInPrice;\n customer.isPricingExpired = true;\n customer.customerActionStatusSetupRequired = false;\r\n customer.ToolTipSetupRequired = \"\";\n \n const id = this.route.snapshot.paramMap.get('id');\n\n vm.pricingTemplateId = changedPricingTemplate.oid;\n }\n else {\n customer.pricingFormula = \"NULL\";\n customer.allInPrice = 0;\r\n customer.isPricingExpired = false;\r\n customer.customerActionStatusSetupRequired = true;\r\n customer.ToolTipSetupRequired = \"This customer was added and needs to be setup with an appropriate ITP template and/or contact email address.\";\r\n }\n\n this.customerMarginsService.updatecustomermargin(vm).subscribe((data: number) => {\n this.sharedService.emitChange(SharedEvents.customerUpdatedEvent);\n\n if (data > 0 && !customer.isFuelerLinxCustomer) {\n const closeDialogRef = this.closeConfirmationDialog.open(\n CloseConfirmationComponent,\n {\n autoFocus: false,\n data: {\n cancel: 'No',\n customText: 'Would you like to enable email distribution for all contacts within this flight dept?',\n customTitle: 'Enable Email Distribution?',\n ok: 'Yes',\n },\n }\n );\n closeDialogRef.afterClosed().subscribe((result) => {\n if (result === true) {\n this.contactInfoByFboService.updateDistributionForAllCustomerContacts(customer.customerId, this.sharedService.currentUser.fboId, true).subscribe(() => {\n\n });\n }\n else {\n this.contactInfoByFboService.updateDistributionForAllCustomerContacts(customer.customerId, this.sharedService.currentUser.fboId, false).subscribe(() => {\n\n });\r\n }\n });\r\n }\n\n });\n }\n\n bulkMarginTemplateUpdate(event: MatSelectChange) {\n const listCustomers = [];\n forEach(this.dataSource.filteredData, (customer) => {\n if (customer.selectAll === true) {\n customer.needsAttention = event.value.default;\n customer.pricingTemplateName = event.value.name;\n customer.pricingTemplateId = event.value.oid;\n customer.allInPrice = event.value.allInPrice;\n customer.pricingFormula = event.value.pricingFormula;\n if (customer.needsAttention) {\n customer.needsAttentionReason =\n 'Customer was assigned to the default template and has not been changed yet.';\n }\n listCustomers.push({\n fboid: this.sharedService.currentUser.fboId,\n id: customer.customerId,\n pricingTemplateId: event.value.oid,\n userId: this.sharedService.currentUser.oid\n });\n }\n });\n\n this.customerMarginsService\n .updatemultiplecustomermargin(listCustomers)\n .subscribe(() => {\n this.sharedService.emitChange(\n SharedEvents.customerUpdatedEvent\n );\n });\n }\n\n anySelected() {\n const filteredList = this.customersData.filter(\n (item) => item.selectAll === true\n );\n return filteredList.length > 0;\n }\n\n //[#hz0jtd] FlatFile importer was requested to be removed\n\n getTableColumns() {\n return this.columns\n .filter((column) => !column.hidden)\n .map((column) => column.id);\n }\n // this might be repeeated on all grids\n openSettings() {\n const dialogRef = this.tableSettingsDialog.open(\n TableSettingsComponent,\n {\n data: this.columns,\n }\n );\n dialogRef.afterClosed().subscribe((result) => {\n if (result) {\n this.columns = [...result];\n this.refreshSort(this.sort, this.columns);\n this.saveSettings(this.tableLocalStorageKey,this.columns);\n }\n });\n }\n\n onFuelVendorUpdate(event: any, customer: any) {\n if (\n customer.fuelVendors.find(\n (fv) => fv.value === event.itemValue.value\n )\n ) {\n customer.fuelVendors = customer.fuelVendors.filter(\n (fv) => fv.value !== event.itemValue.value\n );\n } else {\n customer.fuelVendors = sortBy(\n [...customer.fuelVendors, event.itemValue],\n (fv) => fv.value\n );\n }\n }\n\n onCustomerTagUpdate(event: any, customer: any) {\n if (event.itemValue.customerId != customer.customerId)\n {\n this.addCustomerTag(event.itemValue, customer);\n }\n else{\n this.removeCustomerTag(event.itemValue, customer);\n }\n }\n\n onCustomerTagPanelShow(event: any, customer: any){\n this.loadCustomerTags(customer);\n }\n\n removeCustomerTag(tag, customer) {\n this.tagsService.remove(tag).subscribe(response => {\n this.loadCustomerTags(customer);\n })\n }\n addCustomerTag(tag, customer) {\n tag['groupId'] = this.sharedService.currentUser.groupId;\n tag['customerId'] = customer.customerId;\n tag['oid'] = 0;\n this.tagsService.add(tag).subscribe(response => {\n this.loadCustomerTags(customer);\n });\n }\n\n loadCustomerTags(customer: any){\n this.tagsService.getTags({\n groupId: this.sharedService.currentUser.groupId,\n customerId: customer.customerId,\n isFuelerLinx: customer.isFuelerLinxCustomer\n }).subscribe(response => {\n customer.availableTags = response;\n customer.tags = customer.availableTags.filter(x=>x.customerId == customer.customerId);\n })\n }\n\n newCustomTag(customer: any) {\n this.dialogOpen = true;\n const data = {\n customerId: customer.customerId,\n groupId: this.sharedService.currentUser.groupId,\n };\n const dialogRef = this.dialog.open(CustomerTagDialogComponent, {\n data,\n });\n\n dialogRef.afterClosed().subscribe((response) => {\n this.dialogOpen = false;\n if (!response) {\n return;\n }\n this.tagsService\n .add(response)\n .subscribe((result: any) => {\n this.loadCustomerTags(customer);\n });\n });\n }\n\n checkState() {\n if (this.dialogOpen)\n this.multiInput.show();\n }\n\n onCustomerPriceShown(customer: any) {\n this.focusedCustomer = customer;\n this.feesAndTaxesSubscription = this.fboFeesAndTaxesService\n .getByFboAndCustomer(\n this.sharedService.currentUser.fboId,\n customer.customerId\n )\n .subscribe((response: any[]) => {\n this.feesAndTaxes = response;\n });\n }\n\n onCustomerPriceHidden() {\n if (this.feesAndTaxesSubscription) {\n this.feesAndTaxesSubscription.unsubscribe();\n this.feesAndTaxesSubscription = null;\n }\n this.feesAndTaxes = null;\n this.focusedCustomer = null;\n }\n\n onCustomerPriceClicked(customer) {\n this.customerPriceClicked.emit({\n customerInfoByGroupId: customer.customerInfoByGroupId,\n filter: this.dataSource.filter,\n filterType: this.customerFilterType,\n order: this.dataSource?.sort?.active,\n orderBy: this.dataSource?.sort?.direction,\n page: this.dataSource.paginator?.pageIndex,\n pricingTemplateId: customer.pricingTemplateId\n });\n }\n\n private refreshCustomerDataSource() {\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\n this.columns = this.columns.map((column) =>\n column.id === this.sort.active\n ? { ...column, sort: this.sort.direction }\n : {\n hidden: column.hidden,\n id: column.id,\n name: column.name,\n }\n );\n this.saveSettings(this.tableLocalStorageKey,this.columns);\n });\n this.dataSource.data = this.customersData.filter(\n (element: any) => {\n if (this.customerFilterType != 1) {\n return true;\n }\n //return element.needsAttention;\n\n }\n );\n }\n\n private loadCustomerFeesAndTaxes(customerInfoByGroupId: number): void {\n this.fboFeesAndTaxesService\n .getByFboAndCustomer(\n this.sharedService.currentUser.fboId,\n customerInfoByGroupId\n )\n .subscribe((response: any[]) => {\n this.feesAndTaxes = response;\n });\n }\n loadFilteredDataSource(filteredDataSource: any){\n if(filteredDataSource.filter.length == 2){\n this.refreshCustomerDataSource();\n return;\n }\n this.dataSource = filteredDataSource;\n\n this.start = 0;\n this.limit = 20;\n }\n setIsFavoriteProperty(customer: any): any {\n customer.isFavorite = customer.favoriteCompany != null;\n return customer;\n }\n toogleFavorite(favoriteData: any): void {\n if(favoriteData.isFavorite)\n this.refreshAircrafts.emit();\n }\n onFilterApplied(filteredDataSource: any): void {\n let customerFilteredTailNumbers = filteredDataSource.filteredData.map(x => x.company.toLowerCase());\n \n this.onCompanyFilterApplied.emit(customerFilteredTailNumbers);\n }\n get getCallBackComponent(): CallbackComponent{\n return CallbackComponent.Company;\n }\n}\n","
\n
\n
\n
\n \n
\n
\n \n \n All Customers \n \n Customers Needing Attention\n \n \n \n
\n
\n \n Add New\n \n
\n
\n
\n \n \n \n \n Export\n \n \n \n \n \n Export Customers\n \n \n Export Aircraft\n \n \n
\n
\n
\n
\n
\n \n \n \n {{ pricingTemplate.name }}\n \n \n \n
\n \n \n Export Selected\n \n
\n
\n
\n \n \n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n \n \n\n \n \n
\n \n
\n
Select
\n
All
\n
\n
\n
\n \n \n \n \n
\n
\n \n \n Company\n \n \n \n {{ customer.company }}\n \n \n \n Action Status\n \n \n \n
\n \n
\n
\n \n \n Tags\n \n \n \n \n \n
\n \n {{ tag.name }}\n \n
\n\n
\n Select a Tag\n
\n
\n \n
\n
{{ tag.name }}
\n
\n
\n \n \n \n
\n
\n \n \n
\n
FuelerLinx
\n
Network
\n
\n
\n
\n
\n {{ getIsInNetworkDisplayString(customer) }}\n \n \n \n
\n
Fleet
\n
Size
\n
\n
\n
\n
\n {{ customer.fleetSize }}\n \n \n \n ITP Margin Template\n \n \n \n \n \n \n \n Fuel Vendors\n \n \n \n \n \n
\n \n {{ fv.value }}\n \n
\n\n
\n No Fuel Vendors\n
\n
\n \n
\n
{{ fv.value }}
\n
\n
\n
\n
\n
All-In
\n
\n
\n {{ getAllIPriceDisplayString(customer) }}\n
\n
\n \n \n
\n
Certificate
\n
Type
\n
\n
\n
\n
\n {{ customer.certificateTypeDescription }}\n \n \n \n
\n
Previous
\n
Visits
\n
\n
\n
\n
\n {{ customer.aircraftsVisits }}\n \n \n \n
Pricing Formula
\n
\n
\n
\n {{ customer.pricingFormula }}\n \n
Invoice Email
\n
\n {{ customer.invoiceUniqueEmail }}\n \n
\n \n
\n
\n\n
\n \n
\n\n \n \n \n \n\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { TagsService } from 'src/app/services/tags.service';\n\nimport { SharedService } from '../../../layouts/shared-service';\nimport { locationChangedEvent } from '../../../constants/sharedEvents';\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\n// Services\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\nimport { customerGridSet } from '../../../store/actions';\nimport { State } from '../../../store/reducers';\nimport { CustomerGridState } from '../../../store/reducers/customer';\nimport { getCustomerGridState } from '../../../store/selectors';\nimport { MatTableDataSource } from '@angular/material/table';\nimport { AircraftsGridComponent } from '../../aircrafts/aircrafts-grid/aircrafts-grid.component';\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\nimport { Subscription } from 'rxjs';\nimport { PricingTemplate } from '../../../models';\r\n\n@Component({\n selector: 'app-customers-home',\n styleUrls: ['./customers-home.component.scss'],\n templateUrl: './customers-home.component.html',\n})\nexport class CustomersHomeComponent implements OnInit, OnDestroy {\n @ViewChild(AircraftsGridComponent) aircraftsGridComponent:AircraftsGridComponent;\n\n // Public Members\n pageTitle = 'Customers';\n customersData: any[];\n aircraftData: any[];\n fullAicraftDataCpy: any[];\n pricingTemplatesData: any[];\n locationChangedSubscription: any;\n customerGridState: CustomerGridState;\n fuelVendors: any[];\n tags : any[];\n customersCount = 0;\n\n public displayedColumns: string[] = ['company', 'directOrders', 'companyQuotesTotal', 'conversionRate', 'totalOrders', 'airportOrders', 'lastPullDate', 'pricingFormula'];\n public dataSource: MatTableDataSource;\n public icao: string;\n public fbo: string;\n public id: string;\n selectedTabIndex: number = 0;\n\n charNameCustomer = 'CustomersCustomer';\n charNameAircraft = 'CustomersAicraft';\n charNamePricingTemplate = 'pricingTempates';\n routeQueryParamSubscription: Subscription;\n constructor(\n private store: Store,\n private router: Router,\n\n private customerInfoByGroupService: CustomerinfobygroupService,\n private pricingTemplatesService: PricingtemplatesService,\n private sharedService: SharedService,\n private customerAircraftService: CustomeraircraftsService,\n private tagService: TagsService,\n private route: ActivatedRoute,\n private ngxLoader: NgxUiLoaderService,\n private cdr: ChangeDetectorRef\n ) {\n \n this.loadCustomers();\n this.loadPricingTemplates();\n this.loadCustomerAircraft();\n this.loadFuelVendors();\n this.loadTags();\n\n this.routeQueryParamSubscription = this.route.queryParams.subscribe((params) => {\n if (params.tab && params.tab) {\n this.selectedTabIndex = parseInt(params.tab);\n }\n });\n }\n\n ngOnInit(): void {\n this.store.select(getCustomerGridState).subscribe((state) => {\n this.customerGridState = state;\n });\n this.locationChangedSubscription =\n this.sharedService.changeEmitted$.subscribe((message) => {\n if (message === locationChangedEvent) {\n this.loadCustomers();\n this.loadPricingTemplates();\n }\n });\n }\n\n ngOnDestroy() {\n this.routeQueryParamSubscription?.unsubscribe();\n if (this.locationChangedSubscription) {\n this.locationChangedSubscription.unsubscribe();\n }\n }\n\n editCustomerClicked(event) {\n this.store.dispatch(\n customerGridSet({\n filter: event.filter,\n filterType: event.filterType,\n order: event.order,\n orderBy: event.orderBy,\n page: event.page,\n })\n );\n\n this.router\n .navigate([\n '/default-layout/customers/' + event.customerInfoByGroupId,\n ])\n .then();\n }\n\n customerPriceClicked(event) {\n this.store.dispatch(\n customerGridSet({\n filter: event.filter,\n filterType: event.filterType,\n order: event.order,\n orderBy: event.orderBy,\n page: event.page,\n })\n );\n\n this.router\n .navigate([\n '/default-layout/pricing-templates/' + event.pricingTemplateId,\n ])\n .then();\n }\n exportAircraftClick($event){\n this.aircraftsGridComponent.exportCsv();\n }\n customerDeleted() {\n this.loadCustomers();\n }\n refreshAircrafts() {\n this.loadCustomerAircraft();\n }\n onCompanyFilterApplied(filter: string[]) {\n this.customersCount = filter.length;\n if(this.customersData == null || this.customersData.length == 0) return;\n \n this.aircraftData = null;\n\n if (filter.length == 0 || filter.length == this.customersData.length) {\n this.aircraftData = [...this.fullAicraftDataCpy];\n return;\n }\n this.aircraftData = this.fullAicraftDataCpy.filter((a) => filter.includes(a.company.toLowerCase()));\n\n }\n // Private Methods\n private loadCustomers() {\n this.ngxLoader.startLoader(this.charNameCustomer);\n this.customersData = null;\n this.customerInfoByGroupService\n .getByGroupAndFbo(\n this.sharedService.currentUser.groupId,\n this.sharedService.currentUser.fboId\n )\n .subscribe((data: any) => {\n this.customersData = data.map((c) => ({\n ...c,\n fuelVendors: c.fuelVendors.map((fv) => ({\n label: fv,\n value: fv,\n })),\n }));\n this.cdr.detectChanges();\n this.customersCount = this.customersData.length;\n this.ngxLoader.stopLoader(this.charNameCustomer);\n });\n }\n\n private loadPricingTemplates() {\n this.ngxLoader.startLoader(this.charNamePricingTemplate);\n\n this.pricingTemplatesData = null;\n this.pricingTemplatesService\n .getByFbo(\n this.sharedService.currentUser.fboId,\n this.sharedService.currentUser.groupId\n )\n .subscribe((data: any) => {\n let blankDefault: PricingTemplate = {\r\n name: '* Missing Template *',\r\n customerId: 0,\r\n customersAssigned: 0,\r\n default: false,\r\n email: '',\r\n emailContentId: 0,\r\n fboid: 0,\r\n intoPlanePrice: 0,\r\n isInvalid: false,\r\n isPricingExpired: false,\r\n margin: 0,\r\n marginType: 0,\r\n marginTypeDescription: '',\r\n notes: '',\r\n oid: 0,\r\n subject: '',\r\n type: 0,\r\n yourMargin: 0\r\n };\n\n this.pricingTemplatesData = data;\n this.pricingTemplatesData.unshift(blankDefault);\n this.ngxLoader.stopLoader(this.charNamePricingTemplate);\n });\n }\n private loadCustomerAircraft() {\n this.ngxLoader.startLoader(this.charNameAircraft);\n\n this.aircraftData = null;\n this.customerAircraftService\n .getCustomerAircraftsByGroupAndFbo(\n this.sharedService.currentUser.groupId,\n this.sharedService.currentUser.fboId\n )\n .subscribe((data: any) => {\n data.forEach((result) => {\n if (result.isCompanyPricing) {\n result.pricingTemplateId = null;\n }\n });\n this.aircraftData = data;\n this.fullAicraftDataCpy = data;\n this.ngxLoader.stopLoader(this.charNameAircraft);\n });\n }\n\n private loadFuelVendors() {\n this.customerInfoByGroupService\n .getFuelVendors()\n .subscribe((data: any) => {\n\n this.fuelVendors = data.map((fv) => ({\n label: fv,\n value: fv,\n }));\n });\n }\n\n private loadTags ()\n {\n this.tagService.getGroupTags(\n this.sharedService.currentUser.groupId\n )\n .subscribe((data:any) =>\n {\n this.tags = data.map((tg) => ({\n label: tg,\n value: tg,\n }));\n });\n\n }\n\n}\n","
\r\n \r\n \r\n \r\n Customers ({{ customersCount }})\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Aircraft ({{ aircraftData?.length }})\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { LngLatLike } from 'mapbox-gl';\nimport * as moment from 'moment';\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\n\n// Services\nimport { SharedService } from '../../../layouts/shared-service';\nimport * as SharedEvents from '../../../constants/sharedEvents';\nimport { StatisticsOrdersByLocationComponent } from '../../../shared/components/statistics-orders-by-location/statistics-orders-by-location.component';\nimport { StatisticsTotalAircraftComponent } from '../../../shared/components/statistics-total-aircraft/statistics-total-aircraft.component';\nimport { StatisticsTotalCustomersComponent } from '../../../shared/components/statistics-total-customers/statistics-total-customers.component';\n// Components\nimport { StatisticsTotalOrdersComponent } from '../../../shared/components/statistics-total-orders/statistics-total-orders.component';\nimport { FlightWatchMapService } from '../../flight-watch/flight-watch-map/flight-watch-map-services/flight-watch-map.service';\nimport {localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\nimport { GroupsService } from 'src/app/services/groups.service';\nimport { ManageFboGroupsService } from 'src/app/services/managefbo.service';\nimport { Subscription } from 'rxjs';\r\n\n@Component({\n selector: 'app-dashboard-fbo-updated',\n styleUrls: ['./dashboard-fbo-updated.component.scss'],\n templateUrl: './dashboard-fbo-updated.component.html',\n})\nexport class DashboardFboUpdatedComponent implements AfterViewInit, OnDestroy {\n public pageTitle = 'Dashboard';\n public fboid: any;\n public groupid: any;\n public updatedPrice: any;\n public locationChangedSubscription: any;\n public filterStartDate: Date;\n public filterEndDate: Date;\n public pastThirtyDaysStartDate: Date;\n @ViewChild('statisticsTotalOrders')\n private statisticsTotalOrders: StatisticsTotalOrdersComponent;\n @ViewChild('statisticsTotalCustomers')\n private statisticsTotalCustomers: StatisticsTotalCustomersComponent;\n @ViewChild('statisticsTotalAircraft')\n private statisticsTotalAircraft: StatisticsTotalAircraftComponent;\n @ViewChild('statisticsOrdersByLocation')\n private statisticsOrdersByLocation: StatisticsOrdersByLocationComponent;\n\n //flghtWatch\n center: LngLatLike;\n flightWatchData: FlightWatchModelResponse[] = null;\n isStable: boolean = true;\n selectedICAO: string = \"\";\n isSingleSourceFbo: boolean = false;\n\n groupsFbosData: any = null;\n\n valueChangedSubscription: Subscription;\n changeEmittedSubscription: Subscription;\n\n integrationStatus: boolean = false;\n\n constructor(private sharedService: SharedService,\n private router: Router,\n private flightWatchMapService: FlightWatchMapService\n ) {\n this.fboid = this.sharedService.currentUser.fboId;\n this.groupid = this.sharedService.currentUser.groupId;\n this.selectedICAO = this.sharedService.getCurrentUserPropertyValue(localStorageAccessConstant.icao);\n this.integrationStatus = this.sharedService.currentUser.integrationStatus;\n\n this.filterStartDate = new Date(\n moment().add(-12, 'M').format('MM/DD/YYYY')\n );\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\n this.pastThirtyDaysStartDate = new Date(\n moment().add(-30, 'days').format('MM/DD/YYYY')\n );\n\n this.isSingleSourceFbo = JSON.parse(\n this.sharedService\n .getCurrentUserPropertyValue(\n localStorageAccessConstant.isSingleSourceFbo\n )\n );\n }\n\n get isCsr() {\n return this.sharedService.isCsr;\n }\n\n get isMember() {\n return this.sharedService.currentUser.role === 4;\n }\n async ngOnInit() {\n await this.setFlightWatchMapCenter();\n\n this.valueChangedSubscription = this.sharedService.valueChanged$.subscribe((value: {event: string, data: FlightWatchModelResponse[]}) => {\n if(value.event === SharedEvents.flightWatchDataEvent){\n if(value.data){\n this.flightWatchData = this.flightWatchMapService.filterArrivalsAndDepartures(value.data);\n this.isStable = true;\n }else{\n this.flightWatchData = null;\n this.isStable = false;\n }\n }\n });\n }\n\n ngAfterViewInit() {\n this.locationChangedSubscription =\n this.changeEmittedSubscription = this.sharedService.changeEmitted$.subscribe((message) => {\n if (message === SharedEvents.locationChangedEvent) {\n this.applyDateFilterChange();\n }else if(message == SharedEvents.icaoChangedEvent){\n this.selectedICAO = this.sharedService.getCurrentUserPropertyValue(localStorageAccessConstant.icao);\n this.setFlightWatchMapCenter();\n }\n });\n }\n\n ngOnDestroy() {\n this.changeEmittedSubscription?.unsubscribe();\n this.valueChangedSubscription?.unsubscribe();\n if (this.locationChangedSubscription) {\n this.locationChangedSubscription.unsubscribe();\n }\n }\n async setFlightWatchMapCenter(){\n if(this.selectedICAO && this.selectedICAO != undefined && this.selectedICAO != 'undefined'){\n this.center = await this.flightWatchMapService.getMapCenter(this.selectedICAO);\n }\n }\n applyDateFilterChange() {\n this.statisticsTotalOrders.refreshData();\n this.statisticsTotalCustomers.refreshData();\n this.statisticsTotalAircraft.refreshData();\n this.statisticsOrdersByLocation.refreshData();\n }\n\n gotoFlightWatch(){\n this.router.navigate(['/default-layout/flight-watch']);\n }\n}\n","
\r\n
Dashboard
\r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\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 { AfterViewInit, Component, OnDestroy, ViewChild } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport { StatisticsOrdersByLocationComponent } from '../../../shared/components/statistics-orders-by-location/statistics-orders-by-location.component';\r\nimport { StatisticsTotalAircraftComponent } from '../../../shared/components/statistics-total-aircraft/statistics-total-aircraft.component';\r\nimport { StatisticsTotalCustomersComponent } from '../../../shared/components/statistics-total-customers/statistics-total-customers.component';\r\n// Components\r\nimport { StatisticsTotalOrdersComponent } from '../../../shared/components/statistics-total-orders/statistics-total-orders.component';\r\n\r\n@Component({\r\n selector: 'app-dashboard-fbo',\r\n styleUrls: ['./dashboard-fbo.component.scss'],\r\n templateUrl: './dashboard-fbo.component.html',\r\n})\r\nexport class DashboardFboComponent implements AfterViewInit, OnDestroy {\r\n public pageTitle = 'Dashboard';\r\n public fboid: any;\r\n public groupid: any;\r\n public updatedPrice: any;\r\n public locationChangedSubscription: any;\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n public pastThirtyDaysStartDate: Date;\r\n @ViewChild('statisticsTotalOrders')\r\n private statisticsTotalOrders: StatisticsTotalOrdersComponent;\r\n @ViewChild('statisticsTotalCustomers')\r\n private statisticsTotalCustomers: StatisticsTotalCustomersComponent;\r\n @ViewChild('statisticsTotalAircraft')\r\n private statisticsTotalAircraft: StatisticsTotalAircraftComponent;\r\n @ViewChild('statisticsOrdersByLocation')\r\n private statisticsOrdersByLocation: StatisticsOrdersByLocationComponent;\r\n\r\n constructor(private sharedService: SharedService) {\r\n location.href = '/default-layout/dashboard-fbo-updated/';\r\n\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n this.pastThirtyDaysStartDate = new Date(\r\n moment().add(-30, 'days').format('MM/DD/YYYY')\r\n );\r\n this.fboid = this.sharedService.currentUser.fboId;\r\n this.groupid = this.sharedService.currentUser.groupId;\r\n \r\n }\r\n\r\n get isCsr() {\r\n return this.sharedService.isCsr;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.locationChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.applyDateFilterChange();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.locationChangedSubscription) {\r\n this.locationChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n applyDateFilterChange() {\r\n this.statisticsTotalOrders.refreshData();\r\n this.statisticsTotalCustomers.refreshData();\r\n this.statisticsTotalAircraft.refreshData();\r\n this.statisticsOrdersByLocation.refreshData();\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\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 } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-dashboard-home',\r\n styleUrls: ['./dashboard-home.component.scss'],\r\n templateUrl: './dashboard-home.component.html',\r\n})\r\nexport class DashboardHomeComponent {\r\n idParam: string;\r\n routeQueryParamSubscription: Subscription;\r\n constructor(private router: Router, private sharedService: SharedService, private route: ActivatedRoute) {\r\n this.routeQueryParamSubscription = this.route.queryParamMap.subscribe((params) => {\r\n this.idParam = params.get('id');\r\n });\r\n\r\n if (this.sharedService.currentUser.role === 3) {\r\n if (!this.sharedService.currentUser.impersonatedRole) {\r\n this.router.navigate(['/default-layout/groups/']);\r\n }\r\n if (this.sharedService.currentUser.impersonatedRole === 2) {\r\n this.router.navigate(['/default-layout/fbos/']);\r\n }\r\n if (this.sharedService.currentUser.impersonatedRole === 1) {\r\n if (this.idParam != \"\")\r\n this.router.navigate(['/default-layout/fuelreqs'], { queryParams: { id: this.idParam } });\r\n else\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated/']);\r\n }\r\n } else if (this.sharedService.currentUser.role === 2) {\r\n if (!this.sharedService.currentUser.impersonatedRole) {\r\n this.router.navigate(['/default-layout/fbos/']);\r\n }\r\n if (this.sharedService.currentUser.impersonatedRole === 1) {\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated/']);\r\n }\r\n } else if (this.sharedService.currentUser.role === 5) {\r\n this.router.navigate(['/default-layout/dashboard-csr/']);\r\n } else if (this.sharedService.currentUser.role === 6) {\r\n if (this.idParam != \"\")\r\n this.router.navigate(['/default-layout/fuelreqs'], { queryParams: { id: this.idParam } });\r\n else\r\n this.router.navigate(['/default-layout/fuelreqs']);\r\n } else {\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated/']);\r\n }\r\n }\r\n ngOnDestroy() {\r\n this.routeQueryParamSubscription?.unsubscribe();\r\n }\r\n}\r\n","
Redirecting...
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { urls } from 'src/app/constants/externalUrlsConstants';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\nimport { Subscription } from 'rxjs';\r\nimport { accountTypeChangedEvent, fboChangedEvent } from 'src/app/constants/sharedEvents';\r\n\r\n@Component({\r\n selector: 'app-demo-request-static-dialog',\r\n templateUrl: './demo-request-static-dialog.component.html',\r\n styleUrls: ['./demo-request-static-dialog.component.scss']\r\n})\r\nexport class DemoRequestStaticDialogComponent implements OnInit {\r\n public isStaticModalVisible: boolean = false;\r\n private routerSubscription: Subscription;\r\n\r\n public freemiumDisableMenuItemsRoutes = [\r\n \"/default-layout/dashboard-fbo-updated\",\r\n \"/default-layout/dashboard-csr\",\r\n \"/default-layout/flight-watch\",\r\n \"/default-layout/pricing-templates\",\r\n \"/default-layout/email-templates\",\r\n \"/default-layout/customers\",\r\n \"/default-layout/analytics\"\r\n ];\r\n\r\n changeEmittedSubscription: Subscription;\r\n\r\n constructor(\r\n private router: Router,\r\n private sharedService: SharedService) {\r\n this.routerSubscription = this.router.events.subscribe((event) => {\r\n if (event instanceof NavigationEnd) {\r\n this.isStaticModalVisible = this.getIsStaticModalVisible(event.url);\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.isStaticModalVisible = this.getIsStaticModalVisible(this.router.url);\r\n this.changeEmittedSubscription = this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === fboChangedEvent || message === accountTypeChangedEvent) {\r\n this.isStaticModalVisible = this.getIsStaticModalVisible(this.router.url);\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.routerSubscription?.unsubscribe();\r\n this.changeEmittedSubscription?.unsubscribe();\r\n }\r\n\r\n openRequestDemo() {\r\n window.open(urls.demoRequestUrl, '_blank').focus();\r\n }\r\n getIsStaticModalVisible(url: string): boolean {\r\n url = (url.split('/').length > 3) ? (url.split('/').splice(0, 3)).join('/') : url;\r\n\r\n if(this.sharedService.currentUser.accountType == AccountType.Premium || Number.isNaN(this.sharedService.currentUser.accountType))\r\n return false;\r\n if(this.freemiumDisableMenuItemsRoutes.includes(url))\r\n return true;\r\n\r\n return false;\r\n }\r\n}\r\n","
\r\n
\r\n

To see a demo and unlock premium features, click the button below.

\r\n \r\n Request Demo\r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { FileInfo, SelectedEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { HtmlEditorService, ImageService, ImageSettingsModel, LinkService, ToolbarService } from '@syncfusion/ej2-angular-richtexteditor';\r\nimport { FileHelper } from 'src/app/helpers/files/file.helper';\r\nimport { EditorBase } from 'src/app/services/text-editor/editorBase';\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { EmailcontentService } from '../../../services/emailcontent.service';\r\n\r\n@Component({\r\n selector: 'app-email-templates-edit',\r\n styleUrls: ['./email-templates-edit.component.scss'],\r\n templateUrl: './email-templates-edit.component.html',\r\n providers: [ToolbarService, LinkService, ImageService, HtmlEditorService ]\r\n})\r\nexport class EmailTemplatesEditComponent extends EditorBase implements OnInit {\r\n @ViewChild('fileUpload') fileUploadName;\r\n private id: any;\r\n public pageTitle = 'Edit Email Template';\r\n public emailTemplateForm: FormGroup;\r\n public emailTemplate: any;\r\n public canSave: boolean = true;\r\n public isSaving = false;\r\n public hasSaved = false;\r\n public isSaveQueued = false;\r\n\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64'}\r\n public fileManagerSettings\r\nFileManagerSettingsModel\r\n theFile: any;\r\n isUploadingFile: boolean;\r\n fileName: any = \"\";\r\n isUploadButtonDisabled: boolean = true;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private sharedService: SharedService,\r\n private emailContentService: EmailcontentService,\r\n fileHelper: FileHelper\r\n ) {\r\n super(fileHelper);\r\n \r\n }\r\n async ngOnInit() {\r\n // Check for passed in id\r\n this.id = this.route.snapshot.paramMap.get('id');\r\n this.emailTemplate = await this.emailContentService\r\n .get({ oid: this.id })\r\n .toPromise();\r\n this.emailContentService.getFileAttachmentName(\r\n this.id).subscribe((data: any) => {\r\n this.fileName = data;\r\n });\r\n }\r\n\r\n public onImageSelected = (args: SelectedEventArgs) => {\r\n let lastImage : FileInfo = args.filesData[args.filesData.length - 1];\r\n if (!this.fileHelper.isValidImageSize(lastImage.size)) {\r\n this.canSave = false;\r\n args.cancel = true;\r\n }\r\n else\r\n this.canSave = true;\r\n }\r\n public onselected(e) {\r\n // Specify the image name\r\n e.filesData[0].name = \"RTEImage changes\";\r\n }\r\n\r\n\r\n public cancelEmailTemplateEdit(): void {\r\n this.router\r\n .navigate(['/default-layout/email-templates/'])\r\n .then(() => {});\r\n }\r\n\r\n public formChanged(event): void {\r\n if (this.canSave)\r\n this.saveEmailTemplate();\r\n }\r\n\r\n onFileChange(event) {\r\n if(!this.fileHelper.isValidImageSize(event.srcElement.files[0].size)){\r\n this.isUploadButtonDisabled = true;\r\n return;\r\n }\r\n this.isUploadButtonDisabled = false;\r\n this.theFile = null;\r\n if (event.target.files && event.target.files.length > 0) {\r\n // Set theFile property\r\n this.theFile = event.target.files[0];\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n if (this.theFile != null) {\r\n this.isUploadingFile = true;\r\n this.readAndUploadFile(this.theFile);\r\n }\r\n }\r\n deleteFile(): void {\r\n this.emailContentService\r\n .deleteFileAttachment(this.id)\r\n .subscribe((data: any) => {\r\n this.fileName = '';\r\n });\r\n }\r\n\r\n downloadFile(): void {\r\n this.emailContentService.downloadFileAttachment(this.id).subscribe((data: any) => {\r\n const source = data;\r\n const link = document.createElement(\"a\");\r\n link.href = source;\r\n link.download = this.fileName;\r\n link.click();\r\n });\r\n }\r\n\r\n // Private Methods\r\n private saveEmailTemplate() {\r\n if (this.canSave) {\r\n const self = this;\r\n if (this.isSaving) {\r\n // Save already in queue - no need to double-up the queue\r\n if (this.isSaveQueued) {\r\n return;\r\n }\r\n this.isSaveQueued = true;\r\n setTimeout(() => {\r\n self.saveEmailTemplate();\r\n }, 250);\r\n return;\r\n }\r\n\r\n this.isSaveQueued = false;\r\n this.isSaving = true;\r\n this.hasSaved = false;\r\n\r\n this.emailContentService\r\n .update(this.emailTemplate)\r\n .subscribe((response: any) => {\r\n this.isSaving = false;\r\n this.hasSaved = true;\r\n });\r\n }\r\n }\r\n\r\n private readAndUploadFile(theFile: any) {\r\n const file = {\r\n ContentType: theFile.type,\r\n\r\n EmailContentId: this.id,\r\n\r\n FileData: null,\r\n // Set File Information\r\n FileName: theFile.name,\r\n };\r\n\r\n var printEventType = function (event) {\r\n var error = event;\r\n };\r\n\r\n // Use FileReader() object to get file to upload\r\n // NOTE: FileReader only works with newer browsers\r\n const reader = new FileReader();\r\n\r\n // Setup onload event for reader\r\n reader.onload = () => {\r\n // Store base64 encoded representation of file\r\n file.FileData = reader.result.toString();\r\n\r\n // POST to server\r\n this.emailContentService.uploadFileAttachment(file).subscribe((data: any) => {\r\n if (data.indexOf(\"Message:\") < 1) {\r\n this.isUploadingFile = false;\r\n this.fileUploadName.nativeElement.value = '';\r\n this.fileName = theFile.name;\r\n }\r\n });\r\n }\r\n\r\n // Read the file\r\n reader.readAsDataURL(theFile);\r\n reader.onerror = printEventType;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Saving Changes \r\n
\r\n
\r\n Changes Saved!\r\n
\r\n
\r\n

\r\n
\r\n
\r\n {{\r\n emailTemplate.name\r\n }}\r\n \r\n close\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n \r\n \r\n
Setup Your Email
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
File Attachment
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\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 {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { GridBase } from 'src/app/services/tables/GridBase';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CopyConfirmationComponent } from '../../../shared/components/copy-confirmation/copy-confirmation.component';\r\nimport { EmailTemplatesDialogNewTemplateComponent } from '../../../shared/components/email-templates-dialog-new-template/email-templates-dialog-new-template.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-email-templates-grid',\r\n styleUrls: ['./email-templates-grid.component.scss'],\r\n templateUrl: './email-templates-grid.component.html',\r\n})\r\nexport class EmailTemplatesGridComponent extends GridBase implements OnInit {\r\n @Output() editEmailTemplateClicked = new EventEmitter();\r\n @Output() deleteEmailTemplateClicked = new EventEmitter();\r\n @Output() copyEmailTemplateClicked = new EventEmitter();\r\n @Output() newEmailTemplateAdded = new EventEmitter();\r\n @Input() emailTemplatesData: any[];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n public dataSource: MatTableDataSource = null;\r\n public displayedColumns: string[] = ['name', 'subject', 'copy', 'delete'];\r\n\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n public newTemplateDialog: MatDialog,\r\n public copyTemplateDialog: MatDialog,\r\n public deleteTemplateWarningDialog: MatDialog,\r\n private sharedService: SharedService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.emailTemplatesData) {\r\n return;\r\n }\r\n\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.dataSource = new MatTableDataSource(\r\n this.emailTemplatesData\r\n );\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n\r\n //this.updateModel.currenttemplate = 0;\r\n\r\n //this.store.select(getPricingTemplateState).subscribe(state => {\r\n // if (state.filter) {\r\n // this.pricingTemplatesDataSource.filter = state.filter;\r\n // }\r\n // if (state.page) {\r\n // this.paginator.pageIndex = state.page;\r\n // }\r\n // if (state.order) {\r\n // this.sort.active = state.order;\r\n // }\r\n // if (state.orderBy) {\r\n // this.sort.direction = state.orderBy as SortDirection;\r\n // }\r\n //});\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n public editEmailTemplate(emailTemplate) {\r\n this.editEmailTemplateClicked.emit({\r\n emailTemplateId: emailTemplate.oid,\r\n filter: this.dataSource.filter,\r\n order: this.dataSource.sort.active,\r\n orderBy: this.dataSource.sort.direction,\r\n page: this.dataSource.paginator.pageIndex,\r\n });\r\n }\r\n\r\n public addNewEmailTemplate() {\r\n const dialogRef = this.newTemplateDialog.open(\r\n EmailTemplatesDialogNewTemplateComponent,\r\n {\r\n data: {\r\n fboId: this.sharedService.currentUser.fboId,\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.newEmailTemplateAdded.emit(result);\r\n });\r\n }\r\n\r\n public deleteEmailTemplate(emailTemplate) {\r\n this.deleteEmailTemplateClicked.emit(emailTemplate);\r\n }\r\n\r\n public copyEmailTemplate(emailTemplate) {\r\n if (emailTemplate) {\r\n const clone: any = JSON.parse(JSON.stringify(emailTemplate));\r\n clone.oid = 0;\r\n clone.name = '';\r\n const dialogRef = this.copyTemplateDialog.open(\r\n CopyConfirmationComponent,\r\n {\r\n data: clone,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.copyEmailTemplateClicked.emit(result);\r\n });\r\n }\r\n }\r\n\r\n public applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n onPageChanged(event: any) {\r\n localStorage.setItem('pageIndexTemplate', event.pageIndex);\r\n sessionStorage.setItem(\r\n 'pageSizeValueTemplate',\r\n this.paginator.pageSize.toString()\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 {{ emailTemplate.name }}\r\n Default\r\n \r\n \r\n\r\n \r\n Subject\r\n \r\n {{ emailTemplate.subject }}\r\n \r\n \r\n\r\n \r\n  \r\n \r\n
\r\n \r\n Copy\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Add New\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Delete\r\n \r\n
\r\n \r\n
\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 { AfterViewInit, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\n// Services\r\nimport { EmailcontentService } from '../../../services/emailcontent.service';\r\n// Components\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-email-templates-home',\r\n styleUrls: ['./email-templates-home.component.scss'],\r\n templateUrl: './email-templates-home.component.html',\r\n})\r\nexport class EmailTemplatesHomeComponent\r\n implements AfterViewInit, OnDestroy, OnInit\r\n{\r\n public pageTitle = 'Email Templates';\r\n\r\n public emailTemplates: any[];\r\n public locationChangedSubscription: any;\r\n\r\n public chartName = 'EmailTemplates';\r\n\r\n public constructor(\r\n private router: Router,\r\n private emailContentService: EmailcontentService,\r\n private sharedService: SharedService,\r\n private deleteEmailContentDialog: MatDialog,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.loadEmailTemplatesData();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.locationChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.loadEmailTemplatesData();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.locationChangedSubscription) {\r\n this.locationChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public editEmailTemplateClicked($event) {\r\n this.router\r\n .navigate([\r\n '/default-layout/email-templates/' + $event.emailTemplateId,\r\n ])\r\n .then(() => {});\r\n }\r\n\r\n public deleteEmailTemplateClicked(emailTemplate): void {\r\n const dialogRef = this.deleteEmailContentDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'email template', item: emailTemplate },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.emailTemplates = null;\r\n this.emailContentService\r\n .remove({\r\n fboId: this.sharedService.currentUser.fboId,\r\n oid: emailTemplate.oid,\r\n })\r\n .subscribe(() => {\r\n this.loadEmailTemplatesData();\r\n });\r\n });\r\n }\r\n\r\n public newEmailTemplateAdded(emailTemplate) {\r\n this.emailContentService\r\n .add(emailTemplate)\r\n .subscribe((response: any) => {\r\n this.loadEmailTemplatesData();\r\n });\r\n }\r\n\r\n public copyEmailTemplateClicked(emailTemplate) {\r\n this.emailContentService\r\n .add(emailTemplate)\r\n .subscribe((response: any) => {\r\n this.loadEmailTemplatesData();\r\n });\r\n }\r\n\r\n // Private Methods\r\n private loadEmailTemplatesData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.emailTemplates = null;\r\n this.emailContentService\r\n .getForFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((data: any[]) => {\r\n this.emailTemplates = data;\r\n this.ngxLoader.stopLoader(this.chartName);\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 } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n//Services\r\nimport { AcukwikairportsService } from '../../../services/acukwikairports.service';\r\n\r\n// Models\r\nimport { AirportFboGeoFenceGridViewmodel } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-grid-viewmodel';\r\n\r\n@Component({\r\n selector: 'app-fbo-geofencing-dialog-new-airport',\r\n styleUrls: ['./fbo-geofencing-dialog-new-airport.component.scss'],\r\n templateUrl: './fbo-geofencing-dialog-new-airport.component.html',\r\n})\r\nexport class FboGeofencingDialogNewAirportComponent {\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: AirportFboGeoFenceGridViewmodel,\r\n private acukwikairportsService: AcukwikairportsService) {\r\n\r\n }\r\n\r\n airportValueChanged(airport: any) {\r\n this.data.icao = airport.icao;\r\n this.data.acukwikAirportId = airport.oid;\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onAddAirportClick(): void {\r\n this.dialogRef.close(this.data);\r\n \r\n }\r\n}\r\n","

Add New Airport for Geo-Fencing

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Inject,\r\n} from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { AcukwikairportsService } from \"../../../services/acukwikairports.service\";\r\n\r\n// Models\r\nimport { FlightWatch } from '../../../models/flight-watch';\r\nimport { AirportFboGeoFenceCluster } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-cluster';\r\nimport { AirportFboGeoFenceGridViewmodel } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-grid-viewmodel';\r\n\r\n@Component({\r\n selector: 'app-fbo-geofencing-dialog-new-cluster',\r\n styleUrls: ['./fbo-geofencing-dialog-new-cluster.component.scss'],\r\n templateUrl: './fbo-geofencing-dialog-new-cluster.component.html',\r\n})\r\nexport class FboGeofencingDialogNewClusterComponent implements OnInit {\r\n\r\n public dataSources: any = {};\r\n public icao: string = '';\r\n public acukwikFbo: any = null;\r\n public loaderName: string = 'fbo-geofence-grid-loader';\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private acukwikAirportsService: AcukwikairportsService) {\r\n this.icao = data.icao;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.dataSources.acukwikFbos) {\r\n this.loadAvailableFbos();\r\n }\r\n }\r\n\r\n public onStartClick(): void {\r\n this.dialogRef.close({ acukwikFbo: this.acukwikFbo});\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n private loadAvailableFbos(): void {\r\n this.acukwikAirportsService.getAcukwikFboHandlerDetailByIcao(this.icao)\r\n .subscribe((response: any) => {\r\n this.dataSources.acukwikFbos = [];\r\n if (!response)\r\n return;\r\n this.dataSources.acukwikFbos.push(...response);\r\n });\r\n }\r\n}\r\n\r\n","

Add New Geo-Fence for FBO

\r\n
\r\n
\r\n 0\">\r\n \r\n {{ acukwikFbo.handlerLongName }}\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, ElementRef, Input, Output, OnInit, EventEmitter, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatSort, MatSortHeader, SortDirection } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { forEach } from 'lodash';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n\r\n// Models\r\nimport { AirportFboGeoFenceGridViewmodel as airportFboGeoFenceGridViewmodel } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-grid-viewmodel';\r\n\r\n//Map\r\nimport { FboGeofencingMapComponent } from '../../fbo-geofencing/fbo-geofencing-map/fbo-geofencing-map.component';\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'icao',\r\n name: 'ICAO',\r\n },\r\n {\r\n id: 'fboCount',\r\n name: 'FBOCount'\r\n },\r\n {\r\n id: 'geoFenceCount',\r\n name: 'Fences Mapped',\r\n },\r\n {\r\n id: 'needsAttention',\r\n name: 'Needs Attention',\r\n },\r\n {\r\n id: 'addNew',\r\n name: 'Add New',\r\n }\r\n];\r\n\r\n@Component({\r\n selector: 'app-fbo-geofencing-grid',\r\n styleUrls: ['./fbo-geofencing-grid.component.scss'],\r\n templateUrl: './fbo-geofencing-grid.component.html',\r\n})\r\nexport class FboGeofencingGridComponent implements OnInit {\r\n @ViewChild('fboGeofencingTableContainer') table: ElementRef;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @Input() fboGeofencingData: any[];\r\n @Input() airportFboGeoFenceGridData: any[];\r\n @Output() onEditRow = new EventEmitter();\r\n @Output() onAddAirport = new EventEmitter();\r\n\r\n tableLocalStorageKey = 'fbo-geofencing-table-settings';\r\n\r\n fboGeofencingDataSource: any = null;\r\n pageIndex = 0;\r\n pageSize = 100;\r\n selectAll = false;\r\n columns: ColumnType[] = [];\r\n\r\n constructor(private router: Router, private sharedService: SharedService, private fboGeofencingMapDialog: MatDialog) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n if (localStorage.getItem(this.tableLocalStorageKey)) {\r\n this.columns = JSON.parse(\r\n localStorage.getItem(this.tableLocalStorageKey)\r\n );\r\n } else {\r\n this.columns = initialColumns;\r\n }\r\n\r\n this.refreshFboGeofencingDataSource();\r\n }\r\n\r\n onPageChanged(event: any) {\r\n localStorage.setItem('pageIndex', event.pageIndex);\r\n sessionStorage.setItem(\r\n 'pageSizeValue',\r\n this.paginator.pageSize.toString()\r\n );\r\n this.selectAll = false;\r\n forEach(this.airportFboGeoFenceGridData, (fbo) => {\r\n fbo.selectAll = false;\r\n });\r\n }\r\n\r\n getTableColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id);\r\n }\r\n\r\n editRowClicked(airportFboGeoFence) {\r\n this.onEditRow.emit(airportFboGeoFence);\r\n }\r\n\r\n addAirportClicked() {\r\n this.onAddAirport.emit();\r\n }\r\n\r\n //showFboGeofencingMap(airportFboGeoFence) {\r\n // const dialogRef = this.fboGeofencingMapDialog.open(\r\n // FboGeofencingMapComponent,\r\n // {\r\n // height: '500px',\r\n // width: '1140px',\r\n // data: airportFboGeoFence\r\n // }\r\n // );\r\n\r\n // dialogRef.afterClosed().subscribe(() => {\r\n\r\n // });\r\n //}\r\n\r\n private refreshFboGeofencingDataSource() {\r\n if (!this.fboGeofencingDataSource) {\r\n this.fboGeofencingDataSource = new MatTableDataSource();\r\n }\r\n\r\n this.fboGeofencingDataSource.data = this.airportFboGeoFenceGridData;\r\n this.fboGeofencingDataSource.sort = this.sort;\r\n this.fboGeofencingDataSource.paginator = this.paginator;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n ICAO\r\n \r\n {{ geofence.icao }}\r\n \r\n FBO Count\r\n \r\n {{ geofence.fboCount }}\r\n \r\n Fence Count\r\n \r\n
\r\n {{ geofence.geoFenceCount }}\r\n
\r\n
\r\n
Needs Attention
\r\n
\r\n {{geofence.needsAttention}}\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 * as _ from 'lodash';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { AirportFboGeofenceClustersService } from '../../../services/airportfbogeofenceclusters.service';\r\n\r\n// Models\r\nimport { AirportFboGeoFenceGridViewmodel } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-grid-viewmodel';\r\n\r\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\r\nimport { FboGeofencingDialogNewAirportComponent } from\r\n \"../fbo-geofencing-dialog-new-airport/fbo-geofencing-dialog-new-airport.component\";\r\n\r\n@Component({\r\n selector: 'app-fbo-geofencing-home',\r\n styleUrls: ['./fbo-geofencing-home.component.scss'],\r\n templateUrl: './fbo-geofencing-home.component.html',\r\n})\r\nexport class FboGeofencingHomeComponent implements OnInit {\r\n // Public Members\r\n public pageTitle = 'FBO Geofencing';\r\n public breadcrumb: any[];\r\n public fboGeofencingData: any[];\r\n public airportFboGeoFenceGridData: any[];\r\n public airportFboGeofenceGridItem: AirportFboGeoFenceGridViewmodel;\r\n public fboHomeLoaderName: string = 'fbo-home-loader';\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n private airportFboGeofenceService: AirportFboGeofenceClustersService,\r\n private ngxLoader: NgxUiLoaderService,\r\n public newAirportDialog: MatDialog\r\n ) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n this.loadFbogeofencing();\r\n this.loadAirportsWithAntennaData();\r\n }\r\n\r\n public onEditAirportFboGeoFence(airportFboGeoFenceClusterViewModel: AirportFboGeoFenceGridViewmodel): void {\r\n this.airportFboGeofenceGridItem = airportFboGeoFenceClusterViewModel;\r\n }\r\n\r\n public onEditClosed(event: AirportFboGeoFenceGridViewmodel): void {\r\n this.airportFboGeofenceGridItem = null;\r\n this.loadAirportsWithAntennaData();\r\n }\r\n\r\n public onAddAirportFboGeoFence(): void {\r\n const dialogRef = this.newAirportDialog.open(FboGeofencingDialogNewAirportComponent,\r\n {\r\n data: { icao: '' },\r\n width: '450px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result: AirportFboGeoFenceGridViewmodel) => {\r\n if (!result)\r\n return;\r\n\r\n this.airportFboGeofenceService.getAirportForGeoFencingByAcukwikAirportId(result.acukwikAirportId).subscribe(\r\n (response:\r\n AirportFboGeoFenceGridViewmodel) => {\r\n this.onEditAirportFboGeoFence(response);\r\n });\r\n });\r\n }\r\n\r\n private loadFbogeofencing() {\r\n this.airportFboGeofenceService\r\n .getAllClusters()\r\n .subscribe((data: any) => {\r\n this.fboGeofencingData = data;\r\n });\r\n }\r\n\r\n private loadAirportsWithAntennaData() {\r\n this.airportFboGeoFenceGridData = null;\r\n this.ngxLoader.startLoader(this.fboHomeLoaderName);\r\n this.airportFboGeofenceService\r\n .getAirportsWithAntennaData()\r\n .subscribe((data: any) => {\r\n this.airportFboGeoFenceGridData = data;\r\n this.ngxLoader.stopLoader(this.fboHomeLoaderName);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\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 {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n OnDestroy,\r\n OnInit,\r\n} from '@angular/core';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { FboGeofencingDialogNewClusterComponent } from\r\n \"../fbo-geofencing-dialog-new-cluster/fbo-geofencing-dialog-new-cluster.component\";\r\n\r\n// Services\r\nimport { AcukwikairportsService } from \"../../../services/acukwikairports.service\";\r\nimport { AirportFboGeofenceClustersService } from \"../../../services/airportfbogeofenceclusters.service\";\r\nimport { AirportWatchService } from \"../../../services/airportwatch.service\";\r\nimport { AirportFboGeofenceClusterCoordinatesService } from\r\n \"../../../services/airportfbogeofenceclustercoordinates.service\";\r\n\r\n// Models\r\nimport { FlightWatch } from '../../../models/flight-watch';\r\nimport { AirportFboGeoFenceCluster } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-cluster';\r\nimport { AirportFboGeoFenceClusterCoordinates } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-cluster-coordinates';\r\nimport { AirportFboGeoFenceGridViewmodel } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-grid-viewmodel';\r\nimport { DeleteConfirmationComponent, DeleteConfirmationData } from\r\n \"../../../shared/components/delete-confirmation/delete-confirmation.component\";\r\nimport { MapboxglBase } from 'src/app/services/mapbox/mapboxBase';\r\n\r\n@Component({\r\n selector: 'app-fbo-geofencing-map',\r\n styleUrls: ['./fbo-geofencing-map.component.scss'],\r\n templateUrl: './fbo-geofencing-map.component.html',\r\n})\r\nexport class FboGeofencingMapComponent extends MapboxglBase implements OnInit, OnDestroy {\r\n @Input() airportFboGeofenceGridItem: AirportFboGeoFenceGridViewmodel;\r\n @Output() onCloseEditing = new EventEmitter();\r\n\r\n // Map Options\r\n public styleLoaded : boolean = false;\r\n public mapStyle : string =\r\n 'mapbox://styles/fuelerlinx/ckszkcycz080718l7oaqoszvd';\r\n public mapContainer: string = 'fbo-geofencing-map';\r\n public center: mapboxgl.LngLatLike;\r\n public zoom = 13;\r\n\r\n public acukwikFbos: any[];\r\n public clusters: AirportFboGeoFenceCluster[];\r\n public clustersFiltered: AirportFboGeoFenceCluster[];\r\n public parkingOccurrences: FlightWatch[];\r\n\r\n public loaderName: string = 'fbo-geofence-map-loader';\r\n public isEditing: boolean = false;\r\n public activeCluster: AirportFboGeoFenceCluster = null;\r\n public initialViewRefreshed: boolean = false;\r\n\r\n\r\n //Map items\r\n public parkingOccurenceMarkers: mapboxgl.Marker[] = [];\r\n public fboClusterLayerIds: string[] = [];\r\n public fboClusterSourceIds: string[] = [];\r\n\r\n constructor(private ngxLoader: NgxUiLoaderService,\r\n private acukwikAirportsService: AcukwikairportsService,\r\n private airportFboGeoFenceClustersService: AirportFboGeofenceClustersService,\r\n private airportWatchService: AirportWatchService,\r\n private newClusterDialog: MatDialog,\r\n private deleteConfirmDialog: MatDialog,\r\n private airportFboGeofenceClusterCoordinatesService: AirportFboGeofenceClusterCoordinatesService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.center = {\r\n lat: this.airportFboGeofenceGridItem.latitude,\r\n lng: this.airportFboGeofenceGridItem.longitude,\r\n };\r\n\r\n const eventHandler = () => this.refreshMap();\r\n\r\n this.buildMap(this.center, this.mapContainer, this.mapStyle, this.zoom)\r\n .onStyleData(() => this.mapStyleLoaded())\r\n .onMapClick((e) => this.mapClicked(e))\r\n .onStyleLoad(() => this.refreshClustersOnMap())\r\n .onLoad(async () => {\r\n eventHandler();\r\n });\r\n\r\n this.ngxLoader.startLoader(this.loaderName);\r\n\r\n this.loadAvailableFbos();\r\n this.loadParkingOccurrences();\r\n this.loadClusters();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.map.remove();\r\n }\r\n\r\n public closeGeofenceEdit(): void {\r\n this.onCloseEditing.emit(this.airportFboGeofenceGridItem);\r\n }\r\n\r\n public refreshMap(): void {\r\n if (!this.map)\r\n return;\r\n this.refreshParkingOccurrencesOnMap();\r\n }\r\n\r\n public mapStyleLoaded(): void {\r\n this.styleLoaded = true;\r\n if (!this.initialViewRefreshed) {\r\n this.initialViewRefreshed = true;\r\n this.refreshParkingOccurrencesOnMap();\r\n this.refreshClustersOnMap();\r\n }\r\n }\r\n\r\n public newClusterClicked(): void {\r\n const dialogRef = this.newClusterDialog.open(FboGeofencingDialogNewClusterComponent,\r\n {\r\n data: this.airportFboGeofenceGridItem,\r\n width: '450px'\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result)\r\n return;\r\n\r\n var airportFboGeoFence: AirportFboGeoFenceCluster = {\r\n oid: 0,\r\n icao: this.airportFboGeofenceGridItem.icao,\r\n acukwikAirportId: this.airportFboGeofenceGridItem.acukwikAirportId,\r\n acukwikFboHandlerId: result.acukwikFbo.handlerId,\r\n centerLatitude: 0,\r\n centerLongitude: 0,\r\n fboName: result.acukwikFbo.handlerLongName,\r\n clusterCoordinatesCollection: []\r\n };\r\n this.airportFboGeoFenceClustersService.add(airportFboGeoFence).subscribe((response: AirportFboGeoFenceCluster) => {\r\n if (!response)\r\n return;\r\n this.clusters.push(response);\r\n this.clustersFiltered.push(response);\r\n this.activeCluster = response;\r\n this.isEditing = true;\r\n });\r\n });\r\n }\r\n\r\n public editRowClicked(cluster: AirportFboGeoFenceCluster): void {\r\n this.isEditing = true;\r\n this.activeCluster = cluster;\r\n }\r\n\r\n public stopEditingRowClicked(cluster: AirportFboGeoFenceCluster): void {\r\n this.isEditing = false;\r\n this.activeCluster = null;\r\n this.refreshClustersOnMap();\r\n }\r\n\r\n public deleteRowClicked(cluster: AirportFboGeoFenceCluster): void {\r\n const dialogRef = this.deleteConfirmDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n item: cluster,\r\n description: 'geo-fence',\r\n includeThis: true\r\n } as DeleteConfirmationData,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result: DeleteConfirmationData) => {\r\n if (!result)\r\n return;\r\n this.ngxLoader.startLoader(this.loaderName);\r\n this.airportFboGeoFenceClustersService.remove(cluster).subscribe((response: any) => {\r\n this.ngxLoader.stopLoader(this.loaderName);\r\n this.clusters.splice(this.clusters.indexOf(cluster), 1);\r\n this.clustersFiltered.splice(this.clustersFiltered.indexOf(cluster), 1);\r\n this.refreshClustersOnMap();\r\n });\r\n });\r\n }\r\n\r\n public mapClicked(e: any): void {\r\n if (this.isEditing && this.activeCluster != null) {\r\n this.ngxLoader.startLoader(this.loaderName);\r\n var clusterCoordinate: AirportFboGeoFenceClusterCoordinates = {\r\n oid: 0,\r\n clusterId: this.activeCluster.oid,\r\n latitude: e.lngLat.lat,\r\n longitude: e.lngLat.lng,\r\n longitudeLatitudeAsList: null\r\n };\r\n this.airportFboGeofenceClusterCoordinatesService.add(clusterCoordinate).subscribe((response:\r\n AirportFboGeoFenceClusterCoordinates) => {\r\n this.ngxLoader.stopLoader(this.loaderName);\r\n this.activeCluster.clusterCoordinatesCollection.push(response);\r\n this.refreshClustersOnMap();\r\n });\r\n }\r\n }\r\n\r\n public layerToggleClicked(styleId: string): void {\r\n if (styleId.indexOf('default') == -1)\r\n this.setStyle('mapbox://styles/mapbox/' + styleId);\r\n else\r\n this.setStyle('mapbox://styles/fuelerlinx/ckszkcycz080718l7oaqoszvd');\r\n }\r\n\r\n public onMouseEnterFbo(cluster: AirportFboGeoFenceCluster): void {\r\n var layerId = 'fbo-cluster-layer-' + cluster.oid;\r\n var layer = this.getLayer(layerId);\r\n if (!layer)\r\n return;\r\n this.setPaintProperty(layerId, 'fill-color', '#FFEC14');\r\n }\r\n\r\n public onMouseLeaveFbo(cluster: AirportFboGeoFenceCluster): void {\r\n var layerId = 'fbo-cluster-layer-' + cluster.oid;\r\n var layer = this.getLayer(layerId);\r\n if (!layer)\r\n return;\r\n this.setPaintProperty(layerId, 'fill-color', '#0080ff');\r\n }\r\n\r\n public onClusterFilterChanged(value: string) {\r\n this.clustersFiltered.length = 0;\r\n this.clusters.forEach((cluster: AirportFboGeoFenceCluster) => {\r\n if (value == null || value == '')\r\n this.clustersFiltered.push(cluster);\r\n else if (cluster.fboName.toLowerCase().indexOf(value.toLowerCase()) > -1)\r\n this.clustersFiltered.push(cluster);\r\n });\r\n }\r\n\r\n private refreshParkingOccurrencesOnMap(): void {\r\n if (!this.styleLoaded)\r\n return;\r\n\r\n if (!this.parkingOccurrences)\r\n return;\r\n\r\n this.parkingOccurenceMarkers.forEach(marker => {\r\n marker.remove();\r\n });\r\n\r\n this.parkingOccurenceMarkers = [];\r\n\r\n this.parkingOccurrences.forEach(occurrence => {\r\n const marker = new mapboxgl.Marker({\r\n draggable: false\r\n }).setLngLat([occurrence.longitude, occurrence.latitude])\r\n .addTo(this.map);\r\n });\r\n }\r\n\r\n private refreshClustersOnMap(): void {\r\n if (!this.styleLoaded)\r\n return;\r\n\r\n if (!this.clusters)\r\n return;\r\n\r\n this.fboClusterLayerIds.forEach((id) => {\r\n let layer = this.getLayer(id);\r\n if (layer) this.removeLayer(id);\r\n });\r\n\r\n this.fboClusterLayerIds = [];\r\n\r\n this.fboClusterSourceIds.forEach((id) => {\r\n let source = this.getSource(id);\r\n if (source) this.removeSource(id);\r\n });\r\n\r\n this.fboClusterSourceIds = [];\r\n\r\n this.clusters.forEach((cluster: AirportFboGeoFenceCluster) => {\r\n const clusterPolygonSourceId: string = 'fbo-cluster-source-' + cluster.oid;\r\n const clusterPolygonLayerId: string = 'fbo-cluster-layer-' + cluster.oid;\r\n\r\n this.addSource(clusterPolygonSourceId,\r\n {\r\n data: {\r\n geometry: {\r\n coordinates: [ cluster.clusterCoordinatesCollection.map(coords => [coords.longitude,coords.latitude])],\r\n type: 'Polygon',\r\n },\r\n properties: {\r\n id: cluster.oid,\r\n },\r\n type: 'Feature',\r\n },\r\n type: 'geojson',\r\n buffer: 0,\r\n tolerance: 5,\r\n });\r\n\r\n this.addLayer({\r\n id: clusterPolygonLayerId,\r\n layout: {},\r\n source: clusterPolygonSourceId,\r\n type: 'fill',\r\n paint: {\r\n 'fill-color': (this.activeCluster != null && this.activeCluster != cluster ? '#FFB042' : '#0080ff'),\r\n 'fill-opacity': 0.5\r\n }\r\n });\r\n\r\n this.fboClusterLayerIds.push(clusterPolygonLayerId);\r\n this.fboClusterSourceIds.push(clusterPolygonSourceId);\r\n });\r\n }\r\n\r\n private loadAvailableFbos(): void {\r\n this.acukwikAirportsService.getAcukwikFboHandlerDetailByIcao(this.airportFboGeofenceGridItem.icao)\r\n .subscribe((response: any) => {\r\n this.acukwikFbos = [];\r\n this.checkLoadingStatus();\r\n if (!response)\r\n return;\r\n this.acukwikFbos.push(...response.sort(x => x.handlerLongName));\r\n });\r\n }\r\n\r\n private loadClusters(): void {\r\n this.airportFboGeoFenceClustersService.getClustersByAcukwikAirportId(this.airportFboGeofenceGridItem.acukwikAirportId)\r\n .subscribe((response: any) => {\r\n this.clusters = [];\r\n this.clustersFiltered = [];\r\n this.checkLoadingStatus();\r\n if (!response)\r\n return;\r\n this.clusters.push(...response.sort(x => x.fboName));\r\n this.clustersFiltered.push(...response.sort(x => x.fboName));\r\n this.refreshClustersOnMap();\r\n });\r\n }\r\n\r\n private loadParkingOccurrences(): void {\r\n this.airportWatchService.getParkingOccurrencesAtAirport(this.airportFboGeofenceGridItem.icao)\r\n .subscribe((response: any) => {\r\n this.parkingOccurrences = [];\r\n this.checkLoadingStatus();\r\n if (!response)\r\n return;\r\n this.parkingOccurrences.push(...response);\r\n this.refreshParkingOccurrencesOnMap();\r\n });\r\n }\r\n\r\n private checkLoadingStatus(): void {\r\n if (!this.parkingOccurrences)\r\n return;\r\n if (!this.clusters)\r\n return;\r\n if (!this.acukwikFbos)\r\n return\r\n this.ngxLoader.stopLoader(this.loaderName);\r\n }\r\n}\r\n","
\r\n

\r\n
\r\n
\r\n \r\n {{airportFboGeofenceGridItem.icao}}\r\n \r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n You are currently editing the cluster for {{this.activeCluster.fboName}}. Click on the map to drop points for your fence.\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\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 records to display\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{cluster.fboName}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\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 {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { interval, Observable, Subscription } from 'rxjs';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport { CustomcustomertypesService } from '../../../services/customcustomertypes.service';\r\n// Services\r\nimport { FboairportsService } from '../../../services/fboairports.service';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { TemporaryAddOnMarginService } from '../../../services/temporaryaddonmargin.service';\r\nimport { FeeAndTaxBreakdownComponent } from '../../../shared/components/fee-and-tax-breakdown/fee-and-tax-breakdown.component';\r\nimport { PriceCheckerComponent } from '../../../shared/components/price-checker/price-checker.component';\r\nimport { ProceedConfirmationComponent } from '../../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\n// Components\r\nimport { FboPricesSelectDefaultTemplateComponent } from '../fbo-prices-select-default-template/fbo-prices-select-default-template.component';\r\nimport { FeeAndTaxSettingsDialogComponent } from '../fee-and-tax-settings-dialog/fee-and-tax-settings-dialog.component';\r\nimport { StringHelperService } from 'src/app/helpers/strings/stringHelper.service';\r\n\r\nexport interface DefaultTemplateUpdate {\r\n currenttemplate: number;\r\n newtemplate: number;\r\n fboid: number;\r\n}\r\n\r\nexport interface TemporaryAddOnMargin {\r\n id?: any;\r\n fboId?: any;\r\n EffectiveFrom?: any;\r\n EffectiveTo?: any;\r\n MarginJet?: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-fbo-prices-home',\r\n styleUrls: ['./fbo-prices-home.component.scss'],\r\n templateUrl: './fbo-prices-home.component.html',\r\n})\r\nexport class FboPricesHomeComponent\r\n implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() isCsr?: boolean;\r\n @ViewChildren('tooltip') priceTooltips: QueryList;\r\n @ViewChild('retailFeeAndTaxBreakdown')\r\n private retailFeeAndTaxBreakdown: FeeAndTaxBreakdownComponent;\r\n @ViewChild('costFeeAndTaxBreakdown')\r\n private costFeeAndTaxBreakdown: FeeAndTaxBreakdownComponent;\r\n @ViewChild('priceChecker') private priceChecker: PriceCheckerComponent;\r\n // Members\r\n pricingLoader = 'pricing-loader';\r\n stagedPricingLoader = 'staged-pricing-loader';\r\n currentPrices: any[];\r\n currentPricingEffectiveFrom = new Date();\r\n currentPricingEffectiveTo: any;\r\n stagedPrices: any[];\r\n stagedPricingEffectiveFrom = new Date();\r\n stagedPricingEffectiveTo: any;\r\n currentDate = new Date();\r\n pricingTemplates: any[];\r\n feesAndTaxes: Array;\r\n jtCost: any;\r\n jtRetail: any;\r\n stagedJetRetail: any;\r\n stagedJetCost: any;\r\n isLoadingRetail = false;\r\n isLoadingCost = false;\r\n isLoadingStagedRetail = false;\r\n isLoadingStagedCost = false;\r\n TempValueJet: number;\r\n TempValueId = 0;\r\n TempDateFrom: Date;\r\n TempDateTo: Date;\r\n isUpdatingMargin = false;\r\n isClearingMargin = false;\r\n priceEntryError = '';\r\n stagedPriceEntryError = '';\r\n tooltipIndex = 0;\r\n discountType: number;\r\n updateModel: DefaultTemplateUpdate = {\r\n currenttemplate: 0,\r\n fboid: 0,\r\n newtemplate: 0,\r\n };\r\n // Additional Members for direct reference (date filtering/restrictions)\r\n currentFboPriceJetARetail: any;\r\n currentFboPriceJetACost: any;\r\n currentFboPrice100LLRetail: any;\r\n currentFboPrice100LLCost: any;\r\n currentFboPriceSafRetail: any;\r\n currentFboPriceSafCost: any;\r\n stagedFboPriceJetACost: any;\r\n stagedFboPriceJetARetail: any;\r\n stagedFboPrice100LL: any;\r\n locationChangedSubscription: any;\r\n tooltipSubscription: any;\r\n tailNumberFormControlSubscription: any;\r\n priceShiftSubscription: any;\r\n priceShiftLoading: boolean;\r\n\r\n subscriptions: Subscription[] = [];\r\n\r\n timezone: string = \"\";\r\n\r\n inputStepDefaultValue: string = this.stringHelperService.getNumberInputStepDefaultValue();\r\n\r\n constructor(\r\n private feesAndTaxesService: FbofeesandtaxesService,\r\n private fboPricesService: FbopricesService,\r\n private pricingTemplateService: PricingtemplatesService,\r\n private sharedService: SharedService,\r\n private fboairportsService: FboairportsService,\r\n private customCustomerService: CustomcustomertypesService,\r\n private temporaryAddOnMargin: TemporaryAddOnMarginService,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private fboPricesSelectDefaultTemplateDialog: MatDialog,\r\n private fboFeesAndTaxesDialog: MatDialog,\r\n private proceedConfirmationDialog: MatDialog,\r\n private stringHelperService: StringHelperService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.resetAll();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.locationChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.resetAll();\r\n }\r\n });\r\n\r\n this.tooltipSubscription = this.sharedService.changeEmitted$.subscribe(\r\n (message) => {\r\n if (message === SharedEvents.menuTooltipShowedEvent) {\r\n this.tooltipIndex = this.priceTooltips.length - 1;\r\n this.showTooltips();\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.locationChangedSubscription?.unsubscribe();\r\n this.tooltipSubscription?.unsubscribe();\r\n this.tailNumberFormControlSubscription?.unsubscribe();\r\n this.priceShiftSubscription?.unsubscribe();\r\n this.subscriptions.forEach((subscription) =>\r\n subscription.unsubscribe()\r\n );\r\n }\r\n\r\n resetAll() {\r\n this.currentPrices = undefined;\r\n this.stagedPrices = undefined;\r\n this.NgxUiLoader.startLoader(this.pricingLoader);\r\n this.subscriptions.push(\r\n this.getTimeZone().subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadCurrentFboPrices().subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadStagedFboPrices().subscribe(() => {\r\n this.NgxUiLoader.stopLoader(this.pricingLoader);\r\n })\r\n );\r\n })\r\n )\r\n })\r\n );\r\n this.loadFeesAndTaxes();\r\n this.checkDefaultTemplate();\r\n }\r\n\r\n // Methods\r\n suspendCostPricing(price) {\r\n if (this.isLoadingCost) {\r\n return;\r\n }\r\n this.isLoadingCost = true;\r\n this.suspendPricing(price.oid, 'cost');\r\n }\r\n\r\n suspendRetailPricing(price) {\r\n if (this.isLoadingRetail) {\r\n return;\r\n }\r\n this.isLoadingRetail = true;\r\n this.suspendPricing(price.oid, 'retail');\r\n }\r\n\r\n suspendStagedJetPricing(price) {\r\n if (this.isLoadingStagedCost) {\r\n return;\r\n }\r\n this.isLoadingStagedCost = true;\r\n this.suspendPricing(price.oid, 'stagedcost');\r\n }\r\n\r\n suspendStagedRetailPricing(price) {\r\n if (this.isLoadingStagedRetail) {\r\n return;\r\n }\r\n this.isLoadingStagedRetail = true;\r\n this.suspendPricing(price.oid, 'stagedretail');\r\n }\r\n\r\n fboPriceRequiresUpdate(price: number, vl: string) {\r\n if (vl === 'JetA Retail') {\r\n this.jtRetail = price;\r\n }\r\n if (vl === 'JetA Cost') {\r\n this.jtCost = price;\r\n }\r\n if (this.jtRetail && this.jtCost) {\r\n if (this.jtCost < 0 || this.jtRetail < 0) {\r\n this.priceEntryError =\r\n 'Cost or Retail values cannot be negative.';\r\n } else if (this.jtCost > this.jtRetail) {\r\n this.priceEntryError =\r\n 'Your cost value is higher than the retail price.';\r\n } else {\r\n this.priceEntryError = '';\r\n }\r\n }\r\n }\r\n\r\n checkStagedPriceBeforeUpdating(price: number, vl: string) {\r\n if (vl === 'JetA Retail') {\r\n this.stagedJetRetail = price;\r\n }\r\n if (vl === 'JetA Cost') {\r\n this.stagedJetCost = price;\r\n }\r\n if (this.stagedJetRetail) {\r\n if (this.stagedJetRetail < 0) {\r\n this.stagedPriceEntryError = 'Retail value cannot be negative.';\r\n } else {\r\n this.stagedPriceEntryError = '';\r\n }\r\n }\r\n\r\n if (this.stagedJetCost) {\r\n if (this.stagedJetCost < 0) {\r\n this.stagedPriceEntryError += 'Cost value cannot be negative.';\r\n } else if (\r\n this.stagedJetRetail > 0 &&\r\n this.stagedJetCost > this.stagedJetRetail\r\n ) {\r\n this.stagedPriceEntryError +=\r\n 'Your cost value is higher than the retail price.';\r\n } else {\r\n this.stagedPriceEntryError = '';\r\n }\r\n }\r\n }\r\n\r\n updatePricing() {\r\n const effectiveFrom = moment(this.currentPricingEffectiveFrom).format(\r\n 'MM/DD/YYYY'\r\n );\r\n const effectiveTo = moment(this.currentPricingEffectiveTo)\r\n .add(1, 'day')\r\n .format('MM/DD/YYYY');\r\n const newPrices = [];\r\n let isRetailExist = false;\r\n let isCostExist = false;\r\n for (const price of this.currentPrices) {\r\n if (price.product === 'JetA Retail') {\r\n isRetailExist = true;\r\n } else if (price.product === 'Jet A Cost') {\r\n isCostExist = true;\r\n }\r\n\r\n if (price.product === 'JetA Retail' && this.jtRetail > 0) {\r\n price.oid = 0;\r\n price.price = this.jtRetail;\r\n price.effectiveFrom = effectiveFrom;\r\n price.effectiveTo = effectiveTo;\r\n newPrices.push(price);\r\n } else if (price.product === 'JetA Cost' && this.jtCost > 0) {\r\n price.oid = 0;\r\n price.price = this.jtCost;\r\n price.effectiveFrom = effectiveFrom;\r\n price.effectiveTo = effectiveTo;\r\n newPrices.push(price);\r\n }\r\n }\r\n\r\n if (!isRetailExist) {\r\n const price = {\r\n effectiveFrom,\r\n effectiveTo,\r\n fboid: this.sharedService.currentUser.fboId,\r\n oid: 0,\r\n price: this.jtRetail,\r\n product: 'JetA Retail',\r\n };\r\n newPrices.push(price);\r\n }\r\n\r\n if (!isCostExist) {\r\n const price = {\r\n effectiveFrom,\r\n effectiveTo,\r\n fboid: this.sharedService.currentUser.fboId,\r\n oid: 0,\r\n price: this.jtCost,\r\n product: 'JetA Cost',\r\n };\r\n newPrices.push(price);\r\n }\r\n this.savePriceChangesAll(newPrices);\r\n\r\n this.jtRetail = '';\r\n this.jtCost = '';\r\n this.currentPricingEffectiveTo = null;\r\n }\r\n\r\n canUpdatePricing() {\r\n return (\r\n this.currentPricingEffectiveTo &&\r\n (this.jtRetail || this.jtCost) &&\r\n !this.priceEntryError.length\r\n );\r\n }\r\n\r\n checkDatesForStaging() {\r\n const effectiveFrom = moment(this.stagedPricingEffectiveFrom);\r\n\r\n if (this.stagedJetRetail || this.stagedJetCost) {\r\n if (\r\n effectiveFrom >\r\n moment(this.currentFboPriceJetARetail.effectiveTo).add(\r\n 1,\r\n 'days'\r\n )\r\n ) {\r\n const dialogRef = this.proceedConfirmationDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Proceed',\r\n description:\r\n \"This effective date is after your current prices' expiration date.\",\r\n title: ' ',\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.updateStagedPricing();\r\n });\r\n } else if (\r\n effectiveFrom < this.currentFboPriceJetARetail.effectiveTo\r\n ) {\r\n const dialogRef = this.proceedConfirmationDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText:\r\n 'Make effective date match current expiration date',\r\n description:\r\n 'Your staged price will take effect before your current price expires.',\r\n title: ' ',\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.stagedPricingEffectiveFrom = moment(\r\n this.currentFboPriceJetARetail.effectiveTo\r\n )\r\n .add(1, 'days')\r\n .toDate();\r\n this.updateStagedPricing();\r\n });\r\n } else {\r\n this.updateStagedPricing();\r\n }\r\n } else {\r\n this.updateStagedPricing();\r\n }\r\n }\r\n\r\n canStagePricing() {\r\n return (\r\n this.stagedPricingEffectiveFrom &&\r\n this.stagedPricingEffectiveTo &&\r\n (this.stagedJetRetail || this.stagedJetCost) &&\r\n !this.priceEntryError.length\r\n );\r\n }\r\n\r\n marginValueChanged(margin: number) {\r\n this.TempValueJet = margin;\r\n }\r\n\r\n updateMargin() {\r\n if (this.isUpdatingMargin) {\r\n return;\r\n }\r\n this.isUpdatingMargin = true;\r\n const payload: TemporaryAddOnMargin = {\r\n EffectiveFrom: this.TempDateFrom,\r\n EffectiveTo: this.TempDateTo,\r\n MarginJet: this.TempValueJet,\r\n };\r\n if (this.TempValueId) {\r\n payload.id = this.TempValueId;\r\n this.temporaryAddOnMargin.update(payload).subscribe(() => {\r\n this.isUpdatingMargin = false;\r\n });\r\n } else {\r\n payload.fboId = this.sharedService.currentUser.fboId;\r\n this.temporaryAddOnMargin\r\n .add(payload)\r\n .subscribe((savedTemplate: TemporaryAddOnMargin) => {\r\n this.TempValueId = savedTemplate.id;\r\n this.isUpdatingMargin = false;\r\n });\r\n }\r\n }\r\n\r\n canUpdateMargin() {\r\n return this.TempDateFrom && this.TempDateTo && this.TempValueJet;\r\n }\r\n\r\n clearMargin() {\r\n if (this.isClearingMargin) {\r\n return;\r\n }\r\n this.isClearingMargin = true;\r\n this.temporaryAddOnMargin.remove(this.TempValueId).subscribe(() => {\r\n this.TempValueJet = null;\r\n this.TempValueId = 0;\r\n this.TempDateFrom = null;\r\n this.TempDateTo = null;\r\n this.isClearingMargin = false;\r\n });\r\n }\r\n\r\n jetACostExists() {\r\n return (\r\n this.currentFboPriceJetACost &&\r\n this.currentFboPriceJetACost.price > 0\r\n );\r\n }\r\n\r\n jetARetailExists() {\r\n return (\r\n this.currentFboPriceJetARetail &&\r\n this.currentFboPriceJetARetail.price > 0\r\n );\r\n }\r\n\r\n stagedJetARetailExists() {\r\n return (\r\n this.stagedFboPriceJetARetail &&\r\n this.stagedFboPriceJetARetail.price > 0\r\n );\r\n }\r\n\r\n stagedJetACostExists() {\r\n return (\r\n this.stagedFboPriceJetACost && this.stagedFboPriceJetACost.price > 0\r\n );\r\n }\r\n\r\n tooltipHidden() {\r\n const tooltipsArr = this.priceTooltips.toArray();\r\n if (this.tooltipIndex >= 0) {\r\n setTimeout(() => {\r\n tooltipsArr[this.tooltipIndex].open();\r\n this.tooltipIndex--;\r\n }, 400);\r\n }\r\n }\r\n\r\n editFeesAndTaxes(): void {\r\n const dialogRef = this.fboFeesAndTaxesDialog.open(\r\n FeeAndTaxSettingsDialogComponent,\r\n {\r\n disableClose: true,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.loadFeesAndTaxes();\r\n if (this.priceChecker) {\r\n this.priceChecker.refresh();\r\n }\r\n if (!result) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n // Private Methods\r\n private suspendPricing(oid, product) {\r\n if (product.indexOf('staged') > -1) {\r\n this.fboPricesService.suspendPricing(oid).subscribe(() => {\r\n this.loadStagedFboPrices().subscribe(() => {\r\n if (product === 'stagedretail') {\r\n this.isLoadingStagedRetail = false;\r\n } else {\r\n this.isLoadingStagedCost = false;\r\n }\r\n });\r\n });\r\n } else {\r\n this.fboPricesService.suspendPricing(oid).subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadCurrentFboPrices().subscribe(() => {\r\n if (product === 'retail') {\r\n this.isLoadingRetail = false;\r\n }\r\n this.isLoadingCost = false;\r\n })\r\n );\r\n });\r\n }\r\n }\r\n\r\n private getTimeZone() {\r\n return new Observable((observer) => {\r\n var _this = this;\r\n this.subscriptions.push(\r\n _this.fboairportsService.getLocalTimeZone(_this.sharedService.currentUser.fboId).subscribe((data: any) => {\r\n _this.timezone = data;\r\n observer.next();\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n )\r\n );\r\n });\r\n }\r\n\r\n private loadCurrentFboPrices() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboPricesService\r\n .getFbopricesByFboIdCurrent(\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.currentPrices = data;\r\n this.currentFboPrice100LLCost =\r\n this.getCurrentPriceByProduct('100LL Cost');\r\n this.currentFboPrice100LLRetail =\r\n this.getCurrentPriceByProduct('100LL Retail');\r\n this.currentFboPriceJetACost =\r\n this.getCurrentPriceByProduct('JetA Cost');\r\n this.currentFboPriceJetARetail =\r\n this.getCurrentPriceByProduct('JetA Retail');\r\n this.currentFboPriceSafCost =\r\n this.getCurrentPriceByProduct('SAF Cost');\r\n this.currentFboPriceSafRetail =\r\n this.getCurrentPriceByProduct('SAF Retail');\r\n\r\n if (this.currentFboPriceJetARetail.effectiveTo) {\r\n const tempStagedPricingEffectiveFrom = moment(\r\n this.currentFboPriceJetARetail.effectiveTo\r\n );\r\n this.stagedPricingEffectiveFrom = new Date(\r\n tempStagedPricingEffectiveFrom.format(\r\n 'MM/DD/YYYY'\r\n )\r\n );\r\n\r\n this.currentFboPriceJetARetail.effectiveTo =\r\n moment(\r\n this.currentFboPriceJetARetail\r\n .effectiveTo\r\n ).subtract(1, 'minutes');\r\n }\r\n\r\n if (this.currentFboPriceJetACost.effectiveTo) {\r\n if (!this.stagedPricingEffectiveFrom) {\r\n this.stagedPricingEffectiveFrom = new Date(\r\n this.currentFboPriceJetACost.effectiveTo\r\n );\r\n }\r\n\r\n this.currentFboPriceJetACost.effectiveTo =\r\n moment(\r\n this.currentFboPriceJetACost.effectiveTo\r\n ).subtract(1, 'minutes');\r\n }\r\n\r\n if (data.length > 0) {\r\n this.TempValueJet = data[0].tempJet;\r\n this.TempValueId = data[0].tempId;\r\n this.TempDateFrom = moment(\r\n data[0].tempDateFrom\r\n ).toDate();\r\n this.TempDateTo = moment(\r\n data[0].tempDateTo\r\n ).toDate();\r\n }\r\n\r\n this.sharedService.emitChange('fbo prices updated');\r\n this.sharedService.valueChange({\r\n JetACost: this.currentFboPriceJetACost.price,\r\n JetARetail:\r\n this.currentFboPriceJetARetail.price,\r\n SafCost: this.currentFboPriceSafCost.price,\r\n SafRetail: this.currentFboPriceSafRetail.price,\r\n PriceExpirationSaf: moment(this.currentFboPriceSafRetail.effectiveTo).format(\"M/D/YY @ HH:mm\") + \" \" + this.timezone,\r\n PriceExpirationJetA: moment(this.currentFboPriceJetARetail.effectiveTo).format(\"M/D/YY @ HH:mm\") + \" \" + this.timezone,\r\n message: SharedEvents.fboPricesUpdatedEvent,\r\n });\r\n\r\n this.subscribeToPricingShift();\r\n\r\n observer.next();\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n )\r\n );\r\n });\r\n }\r\n\r\n private loadStagedFboPrices() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboPricesService\r\n .getFbopricesByFboIdStaged(\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.stagedPrices = data;\r\n this.stagedFboPriceJetACost =\r\n this.getStagedPriceByProduct('JetA Cost');\r\n this.stagedFboPriceJetARetail =\r\n this.getStagedPriceByProduct('JetA Retail');\r\n if (this.stagedFboPriceJetACost.effectiveTo) {\r\n this.stagedFboPriceJetACost.effectiveTo =\r\n moment(\r\n this.stagedFboPriceJetACost.effectiveTo\r\n ).subtract(1, 'minutes');\r\n }\r\n if (this.stagedFboPriceJetARetail.effectiveTo) {\r\n this.stagedFboPriceJetARetail.effectiveTo =\r\n moment(\r\n this.stagedFboPriceJetARetail\r\n .effectiveTo\r\n ).subtract(1, 'minutes');\r\n }\r\n this.subscribeToPricingShift();\r\n observer.next();\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n )\r\n );\r\n });\r\n }\r\n\r\n private updateStagedPricing() {\r\n const effectiveFrom = moment(this.stagedPricingEffectiveFrom).format(\r\n 'MM/DD/YYYY'\r\n );\r\n const effectiveTo = moment(this.stagedPricingEffectiveTo)\r\n .add(1, 'day')\r\n .format('MM/DD/YYYY');\r\n\r\n const newPrices = [];\r\n let addRetail = true;\r\n let addCost = true;\r\n for (const price of this.stagedPrices) {\r\n if (price.product === 'JetA Retail' && this.stagedJetRetail > 0) {\r\n price.price = this.stagedJetRetail;\r\n price.effectiveFrom = effectiveFrom;\r\n price.effectiveTo = effectiveTo;\r\n newPrices.push(price);\r\n addRetail = false;\r\n } else if (\r\n price.product === 'JetA Cost' &&\r\n this.stagedJetCost > 0\r\n ) {\r\n price.price = this.stagedJetCost;\r\n price.effectiveFrom = effectiveFrom;\r\n price.effectiveTo = effectiveTo;\r\n newPrices.push(price);\r\n addCost = false;\r\n }\r\n }\r\n\r\n if (addRetail) {\r\n const price = {\r\n effectiveFrom,\r\n effectiveTo,\r\n fboid: this.sharedService.currentUser.fboId,\r\n oid: 0,\r\n price: this.stagedJetRetail,\r\n product: 'JetA Retail',\r\n };\r\n newPrices.push(price);\r\n }\r\n\r\n if (addCost) {\r\n const price = {\r\n effectiveFrom,\r\n effectiveTo,\r\n fboid: this.sharedService.currentUser.fboId,\r\n oid: 0,\r\n price: this.stagedJetCost,\r\n product: 'JetA Cost',\r\n };\r\n newPrices.push(price);\r\n }\r\n\r\n this.saveStagedPriceChangesAll(newPrices);\r\n\r\n this.stagedJetRetail = '';\r\n this.stagedJetCost = '';\r\n\r\n if (this.currentFboPriceJetARetail.effectiveTo) {\r\n const tempStagedPricingEffectiveFrom = moment(\r\n this.currentFboPriceJetARetail.effectiveTo\r\n ).add(1, 'days');\r\n this.stagedPricingEffectiveFrom = new Date(\r\n tempStagedPricingEffectiveFrom.format('MM/DD/YYYY')\r\n );\r\n } else if (\r\n !this.stagedPricingEffectiveFrom &&\r\n this.currentFboPriceJetACost.effectiveTo\r\n ) {\r\n const tempStagedPricingEffectiveFrom = moment(\r\n this.currentFboPriceJetACost.effectiveTo\r\n ).add(1, 'days');\r\n this.stagedPricingEffectiveFrom = new Date(\r\n tempStagedPricingEffectiveFrom.format('MM/DD/YYYY')\r\n );\r\n } else {\r\n const tempStagedPricingEffectiveFrom = moment(\r\n this.stagedFboPriceJetARetail.effectiveTo\r\n ).add(1, 'days');\r\n this.stagedPricingEffectiveFrom = new Date(\r\n tempStagedPricingEffectiveFrom.format('MM/DD/YYYY')\r\n );\r\n }\r\n\r\n this.stagedPricingEffectiveTo = null;\r\n }\r\n\r\n private savePriceChangesAll(price) {\r\n this.currentPrices = null;\r\n this.NgxUiLoader.startLoader(this.pricingLoader);\r\n this.fboPricesService\r\n .checkifExistFboPrice(this.sharedService.currentUser.fboId, price)\r\n .subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadCurrentFboPrices().subscribe(() => {\r\n this.NgxUiLoader.stopLoader(this.pricingLoader);\r\n })\r\n );\r\n });\r\n }\r\n\r\n private saveStagedPriceChangesAll(price) {\r\n this.stagedPrices = null;\r\n this.NgxUiLoader.startLoader(this.stagedPricingLoader);\r\n this.fboPricesService\r\n .checkifExistStagedFboPrice(\r\n this.sharedService.currentUser.fboId,\r\n price\r\n )\r\n .subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadStagedFboPrices().subscribe(() => {\r\n this.NgxUiLoader.stopLoader(this.stagedPricingLoader);\r\n })\r\n );\r\n });\r\n }\r\n\r\n private getCurrentPriceByProduct(product) {\r\n let result = {\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n oid: 0,\r\n price: null,\r\n };\r\n for (const fboPrice of this.currentPrices) {\r\n if (fboPrice.product === product) {\r\n result = fboPrice;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private getStagedPriceByProduct(product) {\r\n let result = {\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n oid: 0,\r\n };\r\n for (const fboPrice of this.stagedPrices) {\r\n if (fboPrice.product === product) {\r\n result = fboPrice;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private checkDefaultTemplate() {\r\n this.pricingTemplateService\r\n .checkdefaultpricingtemplates(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n if (!response) {\r\n this.pricingTemplateService\r\n .getByFboDefaultTemplate(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.pricingTemplates = data;\r\n if (this.pricingTemplates) {\r\n let skipForDefault = false;\r\n if (this.pricingTemplates.length === 1) {\r\n if (this.pricingTemplates[0].default) {\r\n skipForDefault = true;\r\n }\r\n }\r\n\r\n if (!skipForDefault) {\r\n const dialogRef =\r\n this.fboPricesSelectDefaultTemplateDialog.open(\r\n FboPricesSelectDefaultTemplateComponent,\r\n {\r\n data: this.pricingTemplates,\r\n disableClose: true,\r\n }\r\n );\r\n\r\n dialogRef\r\n .afterClosed()\r\n .subscribe((result) => {\r\n if (result !== 'cancel') {\r\n this.updateModel.currenttemplate = 0;\r\n this.updateModel.fboid =\r\n this.sharedService.currentUser.fboId;\r\n this.updateModel.newtemplate =\r\n result;\r\n\r\n this.customCustomerService\r\n .updateDefaultTemplate(\r\n this.updateModel\r\n )\r\n .subscribe(() => { });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n () => {\r\n this.pricingTemplates = [];\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n private showTooltips() {\r\n setTimeout(() => {\r\n const tooltipsArr = this.priceTooltips.toArray();\r\n tooltipsArr[this.tooltipIndex].open();\r\n this.tooltipIndex--;\r\n }, 400);\r\n }\r\n\r\n private loadFeesAndTaxes() {\r\n this.feesAndTaxesService\r\n .getByFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n this.feesAndTaxes = response;\r\n console.log(response)\r\n if (this.retailFeeAndTaxBreakdown) {\r\n this.retailFeeAndTaxBreakdown.feesAndTaxes =\r\n this.feesAndTaxes;\r\n this.retailFeeAndTaxBreakdown.performRecalculation();\r\n }\r\n if (this.costFeeAndTaxBreakdown) {\r\n this.costFeeAndTaxBreakdown.feesAndTaxes =\r\n this.feesAndTaxes;\r\n this.costFeeAndTaxBreakdown.performRecalculation();\r\n }\r\n });\r\n }\r\n\r\n private subscribeToPricingShift() {\r\n if (this.priceShiftSubscription) {\r\n this.priceShiftSubscription.unsubscribe();\r\n }\r\n this.priceShiftSubscription = interval(1000).subscribe(() => {\r\n const utcNow = moment.utc().format('MM/DD/YYYY');\r\n const utcTomorrow = moment\r\n .utc()\r\n .add(1, 'days')\r\n .format('MM/DD/YYYY');\r\n\r\n if (!this.priceShiftLoading) {\r\n if (this.currentFboPriceJetARetail) {\r\n if (\r\n this.currentFboPriceJetARetail.effectiveFrom &&\r\n this.currentFboPriceJetARetail.effectiveTo\r\n ) {\r\n const currentRetailEffectiveFrom = moment(\r\n this.currentFboPriceJetARetail.effectiveFrom\r\n ).format('MM/DD/YYYY');\r\n const currentRetailEffectiveTo = moment(\r\n this.currentFboPriceJetARetail.effectiveTo\r\n ).format('MM/DD/YYYY');\r\n if (\r\n utcTomorrow !== currentRetailEffectiveFrom &&\r\n utcNow === currentRetailEffectiveTo\r\n ) {\r\n this.loadAllPrices();\r\n }\r\n }\r\n if (\r\n this.currentFboPriceJetACost.effectiveFrom &&\r\n this.currentFboPriceJetACost.effectiveTo\r\n ) {\r\n const currentCostEffectiveFrom = moment(\r\n this.currentFboPriceJetACost.effectiveFrom\r\n ).format('MM/DD/YYYY');\r\n const currentCostEffectiveTo = moment(\r\n this.currentFboPriceJetACost.effectiveTo\r\n ).format('MM/DD/YYYY');\r\n if (\r\n utcTomorrow !== currentCostEffectiveFrom &&\r\n utcNow === currentCostEffectiveTo\r\n ) {\r\n this.loadAllPrices();\r\n }\r\n }\r\n }\r\n if (this.stagedFboPriceJetARetail) {\r\n if (this.stagedFboPriceJetARetail.effectiveFrom) {\r\n const stagedRetailEffectiveFrom = moment(\r\n this.stagedFboPriceJetARetail.effectiveFrom\r\n ).format('MM/DD/YYYY');\r\n if (utcNow === stagedRetailEffectiveFrom) {\r\n this.loadAllPrices();\r\n }\r\n }\r\n if (this.stagedFboPriceJetACost.effectiveFrom) {\r\n const stagedCostEffectiveFrom = moment(\r\n this.stagedFboPriceJetACost.effectiveFrom\r\n ).format('MM/DD/YYYY');\r\n if (utcNow === stagedCostEffectiveFrom) {\r\n this.loadAllPrices();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n private loadAllPrices() {\r\n this.priceShiftLoading = true;\r\n this.subscriptions.push(\r\n this.loadCurrentFboPrices().subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadStagedFboPrices().subscribe(() => {\r\n this.priceShiftLoading = false;\r\n })\r\n )\r\n })\r\n )\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Retail
\r\n
\r\n
\r\n
Cost
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
 
\r\n

\r\n Jet-A\r\n

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

\r\n ${{\r\n currentFboPriceJetARetail.price\r\n | decimalPrecision\r\n }}\r\n

\r\n \r\n Expired\r\n \r\n \r\n Expires:\r\n {{ currentFboPriceJetARetail.effectiveTo | date\r\n }}
\r\n {{\r\n currentFboPriceJetARetail.effectiveTo\r\n | date: \"HH:mm\"\r\n }}\r\n UTC\r\n \r\n \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 currentFboPriceJetACost.price\r\n | decimalPrecision\r\n }}\r\n

\r\n \r\n Expired\r\n \r\n \r\n Expires:\r\n {{ currentFboPriceJetACost.effectiveTo | date\r\n }}
\r\n {{\r\n currentFboPriceJetACost.effectiveTo\r\n | date: \"HH:mm\"\r\n }}\r\n UTC\r\n \r\n \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 Fees & Taxes\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n Jet-A\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n This date controls when your pricing is valid\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n $\r\n \r\n
\r\n \r\n \r\n Enter your current pricing here\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n $\r\n 0\"\r\n class=\"fbo-prices-error-msg\"\r\n >{{ priceEntryError }}\r\n \r\n
\r\n
\r\n
\r\n \r\n Update Pricing\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Retail
\r\n
\r\n
\r\n
Cost
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
 
\r\n

\r\n Jet-A\r\n

\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n ${{\r\n stagedFboPriceJetARetail.price\r\n | decimalPrecision\r\n }}\r\n \r\n \r\n None\r\n \r\n \r\n {{\r\n stagedFboPriceJetARetail.effectiveFrom\r\n | date\r\n }}\r\n -\r\n {{\r\n stagedFboPriceJetARetail.effectiveTo\r\n | date\r\n }}\r\n \r\n \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 stagedFboPriceJetACost.price\r\n | decimalPrecision\r\n }}\r\n \r\n \r\n None\r\n \r\n \r\n {{\r\n stagedFboPriceJetACost.effectiveFrom\r\n | date\r\n }}\r\n -\r\n {{\r\n stagedFboPriceJetACost.effectiveTo\r\n | date\r\n }}\r\n \r\n \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
\r\n Jet-A\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \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\"\r\n class=\"fbo-prices-error-msg\"\r\n >{{ stagedPriceEntryError }}\r\n \r\n
\r\n
\r\n
\r\n \r\n Stage Pricing\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
 
\r\n

\r\n Jet-A\r\n

\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n $\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Clear Add On\r\n \r\n \r\n \r\n \r\n \r\n Update Margin\r\n \r\n \r\n \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 {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'fbo-prices-select-default-template',\r\n styleUrls: ['./fbo-prices-select-default-template.component.scss'],\r\n templateUrl: './fbo-prices-select-default-template.component.html',\r\n})\r\nexport class FboPricesSelectDefaultTemplateComponent implements OnInit {\r\n public selectedTemplate: any;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n public closeConfirmationDialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {}\r\n\r\n onSelect() {\r\n if (this.selectedTemplate) {\r\n this.dialogRef.close(this.selectedTemplate);\r\n }\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n}\r\n","

Please select default margin template

\r\n
\r\n
\r\n \r\n \r\n \r\n {{ pricingTemplate.name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import {\r\n Component, ElementRef, Input, Output, OnInit, EventEmitter, ViewChild,\r\n ViewChildren, QueryList, } from '@angular/core';\r\n\r\nimport { Router } from '@angular/router';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forEach } from 'lodash';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport * as moment from 'moment';\r\nimport { NgxMatDateFormats, NGX_MAT_DATE_FORMATS } from '@angular-material-components/datetime-picker';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { FboairportsService } from '../../../services/fboairports.service';\r\nimport { DateTimeService } from '../../../services/datetime.service';\r\n\r\n// Models\r\nimport { PricingUpdateGridViewModel as pricingUpdateGridViewModel } from '../../../models/pricing/pricing-update-grid-viewmodel';\r\nimport { ThemePalette } from '@angular/material/core';\r\nimport { ProceedConfirmationComponent } from '../../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\nimport { StringHelperService } from 'src/app/helpers/strings/stringHelper.service';\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'status',\r\n name: 'Status',\r\n },\r\n {\r\n id: 'product',\r\n name: 'Product'\r\n },\r\n {\r\n id: 'effectiveFrom',\r\n name: 'Effective',\r\n },\r\n {\r\n id: 'effectiveTo',\r\n name: 'Expiration',\r\n },\r\n {\r\n id: 'pricePap',\r\n name: 'Retail PAP',\r\n },\r\n {\r\n id: 'priceCost',\r\n name: 'Fuel Cost',\r\n },\r\n {\r\n id: 'edit',\r\n name: 'Edit',\r\n },\r\n {\r\n id: 'remove',\r\n name: 'Remove',\r\n }\r\n];\r\n\r\nconst INTL_DATE_INPUT_FORMAT = {\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: 'numeric',\r\n hourCycle: 'h23',\r\n hour: '2-digit',\r\n minute: '2-digit',\r\n};\r\n\r\nconst MAT_DATE_FORMATS: NgxMatDateFormats = {\r\n parse: {\r\n dateInput: INTL_DATE_INPUT_FORMAT,\r\n },\r\n display: {\r\n dateInput: INTL_DATE_INPUT_FORMAT,\r\n monthYearLabel: { year: 'numeric', month: 'short' },\r\n dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },\r\n monthYearA11yLabel: { year: 'numeric', month: 'long' },\r\n },\r\n};\r\n\r\n@Component({\r\n providers: [{ provide: NGX_MAT_DATE_FORMATS, useValue: MAT_DATE_FORMATS }],\r\n selector: 'app-fbo-prices-update-generator-grid',\r\n styleUrls: ['./fbo-prices-update-generator-grid.component.scss'],\r\n templateUrl: './fbo-prices-update-generator-grid.component.html',\r\n})\r\nexport class FboPricesUpdateGeneratorGridComponent implements OnInit {\r\n @ViewChild('updatePricesTable') table: ElementRef;\r\n @ViewChildren('tooltip') priceTooltips: QueryList;\r\n @Input() fboPricesUpdateData: any[];\r\n @Input() fboPricesUpdateGridData: any[];\r\n @Output() onSubmitRow = new EventEmitter();\r\n\r\n pricesDataSource: any = null;\r\n columns: ColumnType[] = [];\r\n tooltipIndex = 0;\r\n timezone = \"\";\r\n public datePickerColor: ThemePalette = 'accent';\r\n inputStepDefaultValue: string = this.stringHelperService.getNumberInputStepDefaultValue();\r\n constructor(private router: Router, private sharedService: SharedService, private fboPricesService: FbopricesService, private fboAirportsService: FboairportsService, private dateTimeService: DateTimeService, private shortTimeDialog: MatDialog,\r\n private stringHelperService: StringHelperService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.columns = initialColumns;\r\n this.refreshFboPricingDataSource();\r\n this.getTimeZone();\r\n }\r\n\r\n getTableColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id);\r\n }\r\n\r\n public editRowClicked(pricingUpdate) {\r\n pricingUpdate.effectiveFrom = moment(pricingUpdate.effectiveFrom).toDate();\r\n pricingUpdate.effectiveTo = moment(pricingUpdate.effectiveTo).toDate();\r\n pricingUpdate.submitStatus = \"Stage\";\r\n pricingUpdate.isEdit = true;\r\n }\r\n\r\n public onEffectiveFromFocus(pricingUpdate) {\r\n if (pricingUpdate.oidRetail > 0)\r\n pricingUpdate.originalEffectiveFrom = pricingUpdate.effectiveFrom;\r\n\r\n this.fboAirportsService.getLocalDateTime(pricingUpdate.fboid).subscribe((localDateTime: any) => {\r\n pricingUpdate.effectiveFrom = moment(moment(new Date(localDateTime)).format(\"MM/DD/YYYY HH:mm\")).toDate();\r\n pricingUpdate.currentDateTime = (moment(new Date(localDateTime))).add(\"10\", \"minutes\");\r\n pricingUpdate.submitStatus = \"Publish\";\r\n });\r\n }\r\n\r\n public onEffectiveFromChange(pricingUpdate) {\r\n var effectiveFromDate = moment(pricingUpdate.effectiveFrom).format(\"MM-DD-YYYY\");\r\n this.dateTimeService.getNextTuesdayDate(effectiveFromDate).subscribe((nextTuesdayDate: any) => {\r\n pricingUpdate.effectiveTo = moment(nextTuesdayDate).toDate();\r\n\r\n if (moment(pricingUpdate.effectiveFrom) <= moment(pricingUpdate.currentDateTime))\r\n pricingUpdate.submitStatus = \"Publish\";\r\n else\r\n pricingUpdate.submitStatus = \"Stage\";\r\n });\r\n }\r\n\r\n public clearClicked(pricingUpdate) {\r\n this.fboPricesService\r\n .suspendPricingGenerator(pricingUpdate)\r\n .subscribe((data: any) => {\r\n if (!data.isPricingLive) {\r\n this.fboAirportsService.getLocalDateTime(pricingUpdate.fboid).subscribe((localdatetime: any) => {\r\n this.dateTimeService.getNextTuesdayDate(localdatetime).subscribe((nextTuesdayDate: any) => {\r\n pricingUpdate.effectiveFrom = moment(moment(new Date(localdatetime)).format(\"MM/DD/YYYY HH:mm\")).toDate();\r\n pricingUpdate.effectiveTo = moment(nextTuesdayDate).toDate();\r\n pricingUpdate.submitStatus = \"Publish\";\r\n });\r\n });\r\n }\r\n else {\r\n pricingUpdate.effectiveFrom = moment(moment(new Date(data.effectiveFrom)).format(\"MM/DD/YYYY HH:mm\")).toDate();\r\n pricingUpdate.effectiveTo = moment(data.effectiveTo).toDate();\r\n pricingUpdate.submitStatus = \"Stage\";\r\n\r\n }\r\n\r\n pricingUpdate.oidCost = 0;\r\n pricingUpdate.oidPap = 0;\r\n pricingUpdate.priceCost = null;\r\n pricingUpdate.pricePap = null;\r\n pricingUpdate.isEdit = true;\r\n });\r\n }\r\n\r\n public cancelClicked(pricingUpdate) {\r\n if (pricingUpdate.oidPap > 0) {\r\n pricingUpdate.effectiveFrom = moment(pricingUpdate.originalEffectiveFrom == undefined ? pricingUpdate.effectiveFrom : pricingUpdate.originalEffectiveFrom).format(\"MM/DD/YYYY HH:mm\");\r\n pricingUpdate.effectiveTo = moment(pricingUpdate.originalEffectiveTo == undefined ? pricingUpdate.effectiveTo : pricingUpdate.originalEffectiveTo).format(\"MM/DD/YYYY HH:mm\");\r\n pricingUpdate.isEdit = false;\r\n }\r\n else {\r\n this.fboAirportsService.getLocalDateTime(pricingUpdate.fboid).subscribe((localdatetime: any) => {\r\n pricingUpdate.effectiveFrom = moment(moment(new Date(localdatetime)).format(\"MM/DD/YYYY HH:mm\")).toDate();\r\n pricingUpdate.effectiveTo = pricingUpdate.effectiveFrom;\r\n pricingUpdate.pricePap = \"\";\r\n pricingUpdate.priceCost = \"\";\r\n });\r\n }\r\n }\r\n\r\n public submitPricing(pricingUpdate) {\r\n var effectiveToDifference = moment(pricingUpdate.effectiveTo).diff(moment(), 'hours');\r\n\r\n if (effectiveToDifference < 48) {\r\n const dialogRef = this.shortTimeDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Yes',\r\n title: 'Are you sure you want to publish your pricing until the date listed below?',\r\n description: moment(pricingUpdate.effectiveTo).format(\"MM/DD/YYYY HH:mm\") + ' ' + this.timezone\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.onSubmitRow.emit({\r\n oidCost: pricingUpdate.oidCost,\r\n oidPap: pricingUpdate.oidPap,\r\n product: pricingUpdate.product,\r\n effectiveTo: pricingUpdate.effectiveTo,\r\n effectiveFrom: pricingUpdate.effectiveFrom,\r\n pricePap: pricingUpdate.pricePap,\r\n priceCost: pricingUpdate.priceCost\r\n });\r\n });\r\n }\r\n else {\r\n this.onSubmitRow.emit({\r\n oidCost: pricingUpdate.oidCost,\r\n oidPap: pricingUpdate.oidPap,\r\n product: pricingUpdate.product,\r\n effectiveTo: pricingUpdate.effectiveTo,\r\n effectiveFrom: pricingUpdate.effectiveFrom,\r\n pricePap: pricingUpdate.pricePap,\r\n priceCost: pricingUpdate.priceCost\r\n });\r\n }\r\n }\r\n\r\n tooltipHidden() {\r\n const tooltipsArr = this.priceTooltips.toArray();\r\n if (this.tooltipIndex >= 0) {\r\n setTimeout(() => {\r\n tooltipsArr[this.tooltipIndex].open();\r\n this.tooltipIndex--;\r\n }, 400);\r\n }\r\n }\r\n\r\n fboPriceRequiresUpdate(price: number, pricing: any, vl: string) {\r\n if (vl == 'Retail') {\r\n pricing.pricePap = price;\r\n }\r\n else {\r\n pricing.priceCost = price;\r\n }\r\n\r\n if (pricing.pricePap && pricing.priceCost) {\r\n if (pricing.priceCost < 0 || pricing.pricePap < 0) {\r\n pricing.priceEntryError =\r\n 'Cost or Retail values cannot be negative.';\r\n } else if (pricing.priceCost > pricing.pricePap) {\r\n pricing.priceEntryError =\r\n 'Your cost value is higher than the retail price.';\r\n } else {\r\n pricing.priceEntryError = '';\r\n }\r\n }\r\n }\r\n\r\n private refreshFboPricingDataSource() {\r\n if (!this.pricesDataSource) {\r\n this.pricesDataSource = new MatTableDataSource();\r\n }\r\n\r\n this.pricesDataSource.data = this.fboPricesUpdateGridData;\r\n }\r\n\r\n private getTimeZone() {\r\n if (this.timezone == \"\") {\r\n this.fboAirportsService.getLocalTimeZone(this.sharedService.currentUser.fboId).subscribe((data: any) => {\r\n this.timezone = data;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Status
\r\n
Product
\r\n
Effective ({{timezone}})
\r\n
Expiration ({{timezone}})
\r\n
Retail PAP
\r\n
Fuel Cost
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
Status
\r\n
Product
\r\n
Effective ({{timezone}})
\r\n
Expiration ({{timezone}})
\r\n
Retail PAP
\r\n
Fuel Cost
\r\n
\r\n  \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
{{pricing.status}}
\r\n \r\n
{{pricing.product == \"SAF\" ? \"SAF\" : pricing.product}}
\r\n \r\n
\r\n
\r\n {{pricing.effectiveFrom}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n This date controls when your pricing is valid\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{pricing.effectiveTo}}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n This date controls when your pricing is valid\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ${{pricing.pricePap | decimalPrecision}}\r\n
\r\n
\r\n \r\n \r\n $\r\n \r\n
\r\n \r\n \r\n Enter your current pricing here\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n ${{pricing.priceCost | decimalPrecision\r\n }}\r\n
\r\n
\r\n \r\n \r\n $\r\n 0\"\r\n class=\"fbo-prices-error-msg\">{{ pricing.priceEntryError }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{pricing.status == \"Automated\" ? pricing.submitStatus : \"Edit\" }}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n pricing.pricePap)\"\r\n ni-button>\r\n {{pricing.submitStatus}}\r\n \r\n
\r\n
\r\n \r\n
0\">\r\n
\r\n \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
\r\n\r\n\r\n\r\n
\r\n
\r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n QueryList,\r\n ViewChild,\r\n ViewChildren,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { interval, Observable, Subscription } from 'rxjs';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport { NotificationComponent } from '../../../shared/components/notification/notification.component';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport { DateTimeService } from '../../../services/datetime.service';\r\n\r\nimport { CustomcustomertypesService } from '../../../services/customcustomertypes.service';\r\n// Services\r\nimport { FboairportsService } from '../../../services/fboairports.service';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { TemporaryAddOnMarginService } from '../../../services/temporaryaddonmargin.service';\r\n\r\n// Components\r\nimport { FboPricesSelectDefaultTemplateComponent } from '../fbo-prices-select-default-template/fbo-prices-select-default-template.component';\r\nimport { FeeAndTaxSettingsDialogComponent } from '../fee-and-tax-settings-dialog/fee-and-tax-settings-dialog.component';\r\nimport { FeeAndTaxBreakdownComponent } from '../../../shared/components/fee-and-tax-breakdown/fee-and-tax-breakdown.component';\r\nimport { ProceedConfirmationComponent } from '../../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\n\r\n//Models\r\nimport { PricingUpdateGridViewModel as pricingUpdateGridViewModel } from '../../../models/pricing/pricing-update-grid-viewmodel';\r\nexport interface DefaultTemplateUpdate {\r\n currenttemplate: number;\r\n newtemplate: number;\r\n fboid: number;\r\n}\r\n\r\n//export interface TemporaryAddOnMargin {\r\n// id?: any;\r\n// fboId?: any;\r\n// EffectiveFrom?: any;\r\n// EffectiveTo?: any;\r\n// MarginJet?: any;\r\n//}\r\n\r\n\r\n\r\n@Component({\r\n selector: 'app-fbo-prices-update-generator',\r\n styleUrls: ['./fbo-prices-update-generator.component.scss'],\r\n templateUrl: './fbo-prices-update-generator.component.html',\r\n})\r\nexport class FboPricesUpdateGeneratorComponent implements OnInit {\r\n @Input() isMember?: boolean;\r\n @Input() isCsr?: boolean;\r\n @ViewChildren('tooltip') priceTooltips: QueryList;\r\n @ViewChild('retailFeeAndTaxBreakdown')\r\n private retailFeeAndTaxBreakdown: FeeAndTaxBreakdownComponent;\r\n @ViewChild('costFeeAndTaxBreakdown')\r\n private costFeeAndTaxBreakdown: FeeAndTaxBreakdownComponent;\r\n\r\n public fboPricesUpdateData: any[];\r\n public fboPricesUpdateGridData: any[];\r\n public fboPricesUpdateGridItem: pricingUpdateGridViewModel;\r\n\r\n // Members\r\n pricingLoader = 'pricing-loader';\r\n currentPrices: any[];\r\n //currentPricingEffectiveFrom = new Date();\r\n //currentPricingEffectiveTo: any;\r\n stagedPrices: any[];\r\n //currentDate = new Date();\r\n pricingTemplates: any[];\r\n feesAndTaxes: Array;\r\n //isLoadingRetail = false;\r\n //isLoadingCost = false;\r\n //isLoadingStagedRetail = false;\r\n //isLoadingStagedCost = false;\r\n //priceEntryError = '';\r\n tooltipIndex = 0;\r\n updateModel: DefaultTemplateUpdate = {\r\n currenttemplate: 0,\r\n fboid: 0,\r\n newtemplate: 0,\r\n };\r\n // Additional Members for direct reference (date filtering/restrictions)\r\n currentFboPriceJetARetail: any;\r\n currentFboPriceJetACost: any;\r\n currentFboPrice100LLRetail: any;\r\n currentFboPrice100LLCost: any;\r\n currentFboPriceSafRetail: any;\r\n currentFboPriceSafCost: any;\r\n //tailNumberFormControlSubscription: any;\r\n priceShiftSubscription: any;\r\n priceShiftLoading: boolean;\r\n\r\n changedSubscription: any;\r\n subscriptions: Subscription[] = [];\r\n timezone: string = \"\";\r\n expirationDate: any;\r\n localDateTime: any;\r\n\r\n integrationStatus: boolean = false;\r\n\r\n constructor(\r\n private feesAndTaxesService: FbofeesandtaxesService,\r\n private fboPricesService: FbopricesService,\r\n private pricingTemplateService: PricingtemplatesService,\r\n private sharedService: SharedService,\r\n private fboairportsService: FboairportsService,\r\n private customCustomerService: CustomcustomertypesService,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private fboPricesSelectDefaultTemplateDialog: MatDialog,\r\n private fboFeesAndTaxesDialog: MatDialog,\r\n private dateTimeService: DateTimeService,\r\n private notification: MatDialog,\r\n // private proceedConfirmationDialog: MatDialog\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.resetAll();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.changedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.resetAll();\r\n }\r\n else if (message === SharedEvents.fboProductPreferenceChangeEvent || message === SharedEvents.fboPricesClearedEvent) {\r\n this.loadStagedFboPrices();\r\n }\r\n else if (message === SharedEvents.menuTooltipShowedEvent) {\r\n this.tooltipIndex = this.priceTooltips.length - 1;\r\n this.showTooltips();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.changedSubscription?.unsubscribe();\r\n this.priceShiftSubscription?.unsubscribe();\r\n this.subscriptions.forEach((subscription) =>\r\n subscription.unsubscribe()\r\n );\r\n }\r\n\r\n resetAll() {\r\n this.currentPrices = undefined;\r\n this.stagedPrices = undefined;\r\n this.loadAllPrices();\r\n this.loadFeesAndTaxes();\r\n //this.fixCustomCustomerTypes();\r\n this.checkDefaultTemplate();\r\n this.integrationStatus = this.sharedService.currentUser.integrationStatus;\r\n }\r\n\r\n // Methods\r\n public onSubmitFboPrice(event): void {\r\n if (event.pricePap > 0 || event.priceCost > 0) {\r\n event.fboId = this.sharedService.currentUser.fboId;\r\n event.effectiveFrom = moment(event.effectiveFrom).format(\"MM/DD/YYYY HH:mm\");\r\n event.effectiveTo = moment(event.effectiveTo).format(\"MM/DD/YYYY HH:mm\");\r\n\r\n var _this = this;\r\n this.fboPricesService.updatePricingGenerator(event)\r\n .subscribe((data: any) => {\r\n this.fboairportsService.getLocalDateTime(this.sharedService.currentUser.fboId).subscribe((localDateTime: any) => {\r\n _this.localDateTime = localDateTime;\r\n _this.subscriptions.push(\r\n _this.loadCurrentFboPrices().subscribe(() => {\r\n }));\r\n\r\n var currentUpdatedPrice = _this.fboPricesUpdateGridData.findIndex(f => {\r\n return f.product === event.product;\r\n });\r\n\r\n if (data.status == \"published\") {\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].effectiveFrom = moment(new Date(event.effectiveTo).getTime() + 1 * 60000).toDate();\r\n var effectiveFromDate = moment(_this.fboPricesUpdateGridData[currentUpdatedPrice].effectiveFrom).format(\"MM-DD-YYYY\");\r\n this.dateTimeService.getNextTuesdayDate(effectiveFromDate).subscribe((nextTuesdayDate: any) => {\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].effectiveTo = moment(nextTuesdayDate).toDate();\r\n });\r\n\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].pricePap = null;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].priceCost = null;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].oidPap = 0;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].oidCost = 0;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].status = \"Editing\";\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].submitStatus = \"Stage\";\r\n }\r\n else {\r\n if (_this.fboPricesUpdateGridData[currentUpdatedPrice].priceCost == null)\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].priceCost = 0;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].oidPap = data.oidPap;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].oidCost = data.oidCost;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].effectiveFrom = event.effectiveFrom;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].effectiveTo = event.effectiveTo;\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].status = \"Staged\";\r\n _this.fboPricesUpdateGridData[currentUpdatedPrice].isEdit = false;\r\n }\r\n\r\n _this.notification.open(NotificationComponent, {\r\n data: {\r\n text: \"Your prices have been \" + data.status + \"!\",\r\n title: 'Success',\r\n },\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n //checkDatesForStaging() {\r\n // const effectiveFrom = moment(this.stagedPricingEffectiveFrom);\r\n\r\n // if (this.stagedJetRetail || this.stagedJetCost) {\r\n // if (\r\n // effectiveFrom >\r\n // moment(this.currentFboPriceJetARetail.effectiveTo).add(\r\n // 1,\r\n // 'days'\r\n // )\r\n // ) {\r\n // const dialogRef = this.proceedConfirmationDialog.open(\r\n // ProceedConfirmationComponent,\r\n // {\r\n // autoFocus: false,\r\n // data: {\r\n // buttonText: 'Proceed',\r\n // description:\r\n // \"This effective date is after your current prices' expiration date.\",\r\n // title: ' ',\r\n // },\r\n // }\r\n // );\r\n\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // if (!result) {\r\n // return;\r\n // }\r\n // this.updateStagedPricing();\r\n // });\r\n // } else if (\r\n // effectiveFrom < this.currentFboPriceJetARetail.effectiveTo\r\n // ) {\r\n // const dialogRef = this.proceedConfirmationDialog.open(\r\n // ProceedConfirmationComponent,\r\n // {\r\n // autoFocus: false,\r\n // data: {\r\n // buttonText:\r\n // 'Make effective date match current expiration date',\r\n // description:\r\n // 'Your staged price will take effect before your current price expires.',\r\n // title: ' ',\r\n // },\r\n // }\r\n // );\r\n\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // if (!result) {\r\n // return;\r\n // }\r\n // this.stagedPricingEffectiveFrom = moment(\r\n // this.currentFboPriceJetARetail.effectiveTo\r\n // )\r\n // .add(1, 'days')\r\n // .toDate();\r\n // this.updateStagedPricing();\r\n // });\r\n // } else {\r\n // this.updateStagedPricing();\r\n // }\r\n // } else {\r\n // this.updateStagedPricing();\r\n // }\r\n //}\r\n\r\n //canStagePricing() {\r\n // return (\r\n // this.stagedPricingEffectiveFrom &&\r\n // this.stagedPricingEffectiveTo &&\r\n // (this.stagedJetRetail || this.stagedJetCost) &&\r\n // !this.priceEntryError.length\r\n // );\r\n //}\r\n\r\n //jetACostExists() {\r\n // return (\r\n // this.currentFboPriceJetACost &&\r\n // this.currentFboPriceJetACost.price > 0\r\n // );\r\n //}\r\n\r\n //jetARetailExists() {\r\n // return (\r\n // this.currentFboPriceJetARetail &&\r\n // this.currentFboPriceJetARetail.price > 0\r\n // );\r\n //}\r\n\r\n //stagedJetARetailExists() {\r\n // return (\r\n // this.stagedFboPriceJetARetail &&\r\n // this.stagedFboPriceJetARetail.price > 0\r\n // );\r\n //}\r\n\r\n //stagedJetACostExists() {\r\n // return (\r\n // this.stagedFboPriceJetACost && this.stagedFboPriceJetACost.price > 0\r\n // );\r\n //}\r\n\r\n editFeesAndTaxes(): void {\r\n const dialogRef = this.fboFeesAndTaxesDialog.open(\r\n FeeAndTaxSettingsDialogComponent,\r\n {\r\n disableClose: true,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n // Private Methods\r\n private loadCurrentFboPrices() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboPricesService\r\n .getFbopricesByFboIdCurrent(\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.currentPrices = data;\r\n this.currentFboPrice100LLCost =\r\n this.getCurrentPriceByProduct('100LL Cost');\r\n this.currentFboPrice100LLRetail =\r\n this.getCurrentPriceByProduct('100LL Retail');\r\n this.currentFboPriceJetACost =\r\n this.getCurrentPriceByProduct('JetA Cost');\r\n this.currentFboPriceJetARetail =\r\n this.getCurrentPriceByProduct('JetA Retail');\r\n this.currentFboPriceSafCost =\r\n this.getCurrentPriceByProduct('SAF Cost');\r\n this.currentFboPriceSafRetail =\r\n this.getCurrentPriceByProduct('SAF Retail');\r\n\r\n\r\n //if (this.currentFboPriceJetARetail.effectiveTo) {\r\n // const tempStagedPricingEffectiveFrom = moment(\r\n // this.currentFboPriceJetARetail.effectiveTo\r\n // );\r\n // this.stagedPricingEffectiveFrom = new Date(\r\n // tempStagedPricingEffectiveFrom.format(\r\n // 'MM/DD/YYYY'\r\n // )\r\n // );\r\n\r\n // this.currentFboPriceJetARetail.effectiveTo =\r\n // moment(\r\n // this.currentFboPriceJetARetail\r\n // .effectiveTo\r\n // ).subtract(1, 'minutes');\r\n //}\r\n\r\n //if (this.currentFboPriceJetACost.effectiveTo) {\r\n // if (!this.stagedPricingEffectiveFrom) {\r\n // this.stagedPricingEffectiveFrom = new Date(\r\n // this.currentFboPriceJetACost.effectiveTo\r\n // );\r\n // }\r\n\r\n // this.currentFboPriceJetACost.effectiveTo =\r\n // moment(\r\n // this.currentFboPriceJetACost.effectiveTo\r\n // ).subtract(1, 'minutes');\r\n //}\r\n\r\n //if (data.length > 0) {\r\n // this.TempValueJet = data[0].tempJet;\r\n // this.TempValueId = data[0].tempId;\r\n // this.TempDateFrom = moment(\r\n // data[0].tempDateFrom\r\n // ).toDate();\r\n // this.TempDateTo = moment(\r\n // data[0].tempDateTo\r\n // ).toDate();\r\n //}\r\n\r\n this.sharedService.emitChange('fbo-prices-loaded');\r\n this.sharedService.valueChange({\r\n JetACost: this.currentFboPriceJetACost.price,\r\n JetARetail:\r\n this.currentFboPriceJetARetail.price,\r\n SafCost: this.currentFboPriceSafCost.price,\r\n SafRetail: this.currentFboPriceSafRetail.price,\r\n PriceExpirationSaf: moment(this.currentFboPriceSafRetail.effectiveTo).format(\"M/D/YY\") == \"12/31/99\" || this.currentFboPriceSafRetail.source == \"1\" ? \"Updated via \" + (this.currentFboPriceSafRetail.integrationPartner == \"\" ? \"PoS\" : this.currentFboPriceSafRetail.integrationPartner) + \" Integration\" : \"Expires \" + moment(this.currentFboPriceSafRetail.effectiveTo).format(\"M/D/YY @ HH:mm\") + \" \" + this.timezone,\r\n PriceExpirationJetA: moment(this.currentFboPriceJetARetail.effectiveTo).format(\"M/D/YY\") == \"12/31/99\" || this.currentFboPriceJetARetail.source == \"1\" ? \"Updated via \" + (this.currentFboPriceJetARetail.integrationPartner == \"\" ? \"PoS\" : this.currentFboPriceJetARetail.integrationPartner) + \" Integration\" : \"Expires \" + moment(this.currentFboPriceJetARetail.effectiveTo).format(\"M/D/YY @ HH:mm\") + \" \" + this.timezone,\r\n message: SharedEvents.fboPricesUpdatedEvent,\r\n });\r\n\r\n //this.subscribeToPricingShift();\r\n\r\n /*observer.next();*/\r\n this.NgxUiLoader.stopLoader(this.pricingLoader);\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n )\r\n );\r\n });\r\n }\r\n\r\n private loadStagedFboPrices() {\r\n this.fboPricesUpdateGridData = null;\r\n var _this = this;\r\n\r\n this.fboPricesService\r\n .getFbopricesByFboIdAllStaged(\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.stagedPrices = data;\r\n this.fboPricesUpdateGridData = data;\r\n\r\n this.fboPricesUpdateGridData.forEach(function (fboPrice) {\r\n if (fboPrice.effectiveFrom && (fboPrice.oidPap == 0 || fboPrice.oidPap == undefined)) {\r\n if (moment(fboPrice.effectiveTo).format(\"YYYY\") == \"9999\" || fboPrice.source == \"1\") {\r\n fboPrice.effectiveFrom = moment(fboPrice.effectiveFrom).format(\"MM/DD/YYYY HH:mm\");\r\n fboPrice.effectiveTo = \"Updated via \" + (fboPrice.integrationPartner == \"\" ? \"PoS\" : fboPrice.integrationPartner) + \" Integration\";\r\n fboPrice.submitStatus = \"Automated\";\r\n fboPrice.status = \"Automated\";\r\n fboPrice.isEdit = false;\r\n }\r\n else if (fboPrice.effectiveFrom == \"0001-01-01T00:00:00\") {\r\n fboPrice.effectiveTo = moment(_this.expirationDate).toDate();\r\n fboPrice.submitStatus = \"Publish\";\r\n fboPrice.status = \"Editing\";\r\n }\r\n else {\r\n fboPrice.effectiveTo = moment(fboPrice.effectiveTo).toDate();\r\n fboPrice.submitStatus = \"Stage\";\r\n fboPrice.status = \"Editing\";\r\n }\r\n\r\n if (fboPrice.status != \"Automated\") {\r\n fboPrice.effectiveFrom = moment(moment(fboPrice.effectiveFrom == \"0001-01-01T00:00:00\" ? _this.localDateTime : fboPrice.effectiveFrom).format(\"MM/DD/YYYY HH:mm\")).toDate();\r\n fboPrice.isEdit = true;\r\n }\r\n }\r\n else {\r\n fboPrice.effectiveFrom = moment(fboPrice.effectiveFrom).format(\"MM/DD/YYYY HH:mm\");\r\n fboPrice.effectiveTo = moment(fboPrice.effectiveTo).format(\"MM/DD/YYYY HH:mm\");\r\n fboPrice.status = \"Staged\";\r\n fboPrice.isEdit = false;\r\n }\r\n });\r\n });\r\n }\r\n\r\n private getExpirationDate() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboairportsService.getLocalDateTime(this.sharedService.currentUser.fboId).subscribe((localDateTime: any) => {\r\n this.localDateTime = localDateTime;\r\n\r\n this.dateTimeService.getNextTuesdayDate(moment(this.localDateTime).format(\"MM-DD-YYYY\")).subscribe((nextTuesdayDate: any) => {\r\n this.expirationDate = nextTuesdayDate;\r\n\r\n observer.next();\r\n })\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n )\r\n )\r\n });\r\n }\r\n\r\n private getTimeZone() {\r\n return new Observable((observer) => {\r\n this.subscriptions.push(\r\n this.fboPricesService\r\n .getFbopricesByFboIdCurrent(\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n if (this.timezone == \"\") {\r\n var _this = this;\r\n this.fboairportsService.getLocalTimeZone(_this.sharedService.currentUser.fboId).subscribe((data: any) => {\r\n this.timezone = data;\r\n _this.loadStagedFboPrices();\r\n });\r\n }\r\n else {\r\n this.loadStagedFboPrices();\r\n }\r\n\r\n observer.next();\r\n },\r\n (error: any) => {\r\n observer.error(error);\r\n }\r\n ));\r\n });\r\n }\r\n\r\n private getCurrentPriceByProduct(product) {\r\n let result = {\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n oid: 0,\r\n price:null\r\n };\r\n for (const fboPrice of this.currentPrices) {\r\n if (fboPrice.product === product) {\r\n result = fboPrice;\r\n }\r\n }\r\n return result;\r\n }\r\n\r\n private checkDefaultTemplate() {\r\n this.pricingTemplateService\r\n .checkdefaultpricingtemplates(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n if (!response) {\r\n this.pricingTemplateService\r\n .getByFboDefaultTemplate(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.pricingTemplates = data;\r\n if (this.pricingTemplates) {\r\n let skipForDefault = false;\r\n if (this.pricingTemplates.length === 1) {\r\n if (this.pricingTemplates[0].default) {\r\n skipForDefault = true;\r\n }\r\n }\r\n\r\n if (!skipForDefault) {\r\n const dialogRef =\r\n this.fboPricesSelectDefaultTemplateDialog.open(\r\n FboPricesSelectDefaultTemplateComponent,\r\n {\r\n data: this.pricingTemplates,\r\n disableClose: true,\r\n }\r\n );\r\n\r\n dialogRef\r\n .afterClosed()\r\n .subscribe((result) => {\r\n if (result !== 'cancel') {\r\n this.updateModel.currenttemplate = 0;\r\n this.updateModel.fboid =\r\n this.sharedService.currentUser.fboId;\r\n this.updateModel.newtemplate =\r\n result;\r\n\r\n this.customCustomerService\r\n .updateDefaultTemplate(\r\n this.updateModel\r\n )\r\n .subscribe(() => { });\r\n }\r\n });\r\n }\r\n }\r\n },\r\n () => {\r\n this.pricingTemplates = [];\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n private showTooltips() {\r\n setTimeout(() => {\r\n const tooltipsArr = this.priceTooltips.toArray();\r\n var toolTip = tooltipsArr[this.tooltipIndex];\r\n if (toolTip != undefined) {\r\n tooltipsArr[this.tooltipIndex].open();\r\n this.tooltipIndex--;\r\n }\r\n }, 400);\r\n }\r\n\r\n private loadFeesAndTaxes() {\r\n this.feesAndTaxesService\r\n .getByFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n this.feesAndTaxes = response;\r\n if (this.retailFeeAndTaxBreakdown) {\r\n this.retailFeeAndTaxBreakdown.feesAndTaxes =\r\n this.feesAndTaxes;\r\n this.retailFeeAndTaxBreakdown.performRecalculation();\r\n }\r\n if (this.costFeeAndTaxBreakdown) {\r\n this.costFeeAndTaxBreakdown.feesAndTaxes =\r\n this.feesAndTaxes;\r\n this.costFeeAndTaxBreakdown.performRecalculation();\r\n }\r\n });\r\n }\r\n\r\n private subscribeToPricingShift() {\r\n if (this.priceShiftSubscription) {\r\n this.priceShiftSubscription.unsubscribe();\r\n }\r\n this.priceShiftSubscription = interval(1000).subscribe(() => {\r\n const utcNow = moment.utc().format('MM/DD/YYYY');\r\n const utcTomorrow = moment\r\n .utc()\r\n .add(1, 'days')\r\n .format('MM/DD/YYYY');\r\n\r\n if (!this.priceShiftLoading) {\r\n if (this.currentFboPriceJetARetail) {\r\n if (\r\n this.currentFboPriceJetARetail.effectiveFrom &&\r\n this.currentFboPriceJetARetail.effectiveTo\r\n ) {\r\n const currentRetailEffectiveFrom = moment(\r\n this.currentFboPriceJetARetail.effectiveFrom\r\n ).format('MM/DD/YYYY');\r\n const currentRetailEffectiveTo = moment(\r\n this.currentFboPriceJetARetail.effectiveTo\r\n ).format('MM/DD/YYYY');\r\n if (\r\n utcTomorrow !== currentRetailEffectiveFrom &&\r\n utcNow === currentRetailEffectiveTo\r\n ) {\r\n this.loadAllPrices();\r\n }\r\n }\r\n if (\r\n this.currentFboPriceJetACost.effectiveFrom &&\r\n this.currentFboPriceJetACost.effectiveTo\r\n ) {\r\n const currentCostEffectiveFrom = moment(\r\n this.currentFboPriceJetACost.effectiveFrom\r\n ).format('MM/DD/YYYY');\r\n const currentCostEffectiveTo = moment(\r\n this.currentFboPriceJetACost.effectiveTo\r\n ).format('MM/DD/YYYY');\r\n if (\r\n utcTomorrow !== currentCostEffectiveFrom &&\r\n utcNow === currentCostEffectiveTo\r\n ) {\r\n this.loadAllPrices();\r\n }\r\n }\r\n }\r\n //if (this.stagedFboPriceJetARetail) {\r\n // if (this.stagedFboPriceJetARetail.effectiveFrom) {\r\n // const stagedRetailEffectiveFrom = moment(\r\n // this.stagedFboPriceJetARetail.effectiveFrom\r\n // ).format('MM/DD/YYYY');\r\n // if (utcNow === stagedRetailEffectiveFrom) {\r\n // this.loadAllPrices();\r\n // }\r\n // }\r\n // if (this.stagedFboPriceJetACost.effectiveFrom) {\r\n // const stagedCostEffectiveFrom = moment(\r\n // this.stagedFboPriceJetACost.effectiveFrom\r\n // ).format('MM/DD/YYYY');\r\n // if (utcNow === stagedCostEffectiveFrom) {\r\n // this.loadAllPrices();\r\n // }\r\n // }\r\n //}\r\n }\r\n });\r\n }\r\n\r\n private loadAllPrices() {\r\n this.priceShiftLoading = true;\r\n this.NgxUiLoader.startLoader(this.pricingLoader);\r\n this.getExpirationDate().subscribe((currentExpirationDate: any) => {\r\n this.subscriptions.push(\r\n this.getTimeZone().subscribe(() => {\r\n this.subscriptions.push(\r\n this.loadCurrentFboPrices().subscribe(() => {\r\n this.priceShiftLoading = false;\r\n }))\r\n }));\r\n });\r\n }\r\n\r\n private fixCustomCustomerTypes() {\r\n this.pricingTemplateService\r\n .fixCustomCustomerTypes(this.sharedService.currentUser.groupId, this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n\r\n });\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\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, ViewChild } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { ApplicableTaxFlights } from '../../../enums/applicable-tax-flights';\r\nimport { FeeCalculationApplyingTypes } from '../../../enums/fee-calculation-applying-types';\r\nimport { FeeCalculationTypes } from '../../../enums/fee-calculation-types';\r\nimport { FlightTypeClassifications } from '../../../enums/flight-type-classifications';\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { EnumOptions } from '../../../models/enum-options';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { PriceBreakdownComponent } from '../../../shared/components/price-breakdown/price-breakdown.component';\r\nimport {\r\n SaveConfirmationComponent,\r\n SaveConfirmationData,\r\n} from '../../../shared/components/save-confirmation/save-confirmation.component';\r\nimport { StringHelperService } from 'src/app/helpers/strings/stringHelper.service';\r\n\r\nexport interface FeeAndTaxDialogData {\r\n oid: number;\r\n fboid: number;\r\n name: string;\r\n calculationType: FeeCalculationTypes;\r\n value: number;\r\n flightTypeClassification: FlightTypeClassifications;\r\n departureType: ApplicableTaxFlights;\r\n requiresUpdate: boolean;\r\n whenToApply: FeeCalculationApplyingTypes;\r\n}\r\n\r\nexport interface SampleCalculation {\r\n pricingTemplateId: number;\r\n flightTypeClassification: FlightTypeClassifications;\r\n departureType: ApplicableTaxFlights;\r\n isCalculating: boolean;\r\n exclusivePrice: number;\r\n inclusivePrice: number;\r\n}\r\n\r\n@Component({\r\n providers: [\r\n SharedService,\r\n PricingtemplatesService,\r\n FbopricesService,\r\n NgxUiLoaderService,\r\n ],\r\n selector: 'app-fee-and-tax-settings-dialog',\r\n styleUrls: ['./fee-and-tax-settings-dialog.component.scss'],\r\n templateUrl: './fee-and-tax-settings-dialog.component.html',\r\n})\r\nexport class FeeAndTaxSettingsDialogComponent implements OnInit {\r\n @ViewChild('priceBreakdownPreview')\r\n private priceBreakdownPreview: PriceBreakdownComponent;\r\n\r\n public calculationLoader = 'calculation-loader';\r\n public feeAndTaxDatasource: MatTableDataSource = null;\r\n public displayedColumns: string[] = [\r\n 'name',\r\n 'calculationType',\r\n 'whenToApply',\r\n 'value',\r\n 'flightTypeClassification',\r\n 'departureType',\r\n 'delete',\r\n ];\r\n public feeCalculationTypes: Array =\r\n EnumOptions.feeCalculationTypeOptions;\r\n public flightTypeClassifications: Array =\r\n EnumOptions.flightTypeClassificationOptions;\r\n public applicableTaxFlightOptions: Array =\r\n EnumOptions.applicableTaxFlightOptions;\r\n public strictApplicableTaxFlightOptions: Array =\r\n EnumOptions.strictApplicableTaxFlightOptions;\r\n public strictFlightTypeClassificationOptions: Array =\r\n EnumOptions.strictFlightTypeClassificationOptions;\r\n public feeCalculationApplyingTypes: Array =\r\n EnumOptions.feeCalculationApplyingTypeOptions;\r\n public deletedFeesAndTaxes: Array = [];\r\n public pricingTemplates: Array;\r\n public sampleCalculation: SampleCalculation = {\r\n departureType: ApplicableTaxFlights.DomesticOnly,\r\n exclusivePrice: 0,\r\n flightTypeClassification: FlightTypeClassifications.Private,\r\n inclusivePrice: 0,\r\n isCalculating: false,\r\n pricingTemplateId: 0,\r\n };\r\n public requiresSaving = false;\r\n\r\n inputStepDefaultValue: string = this.stringHelperService.getNumberInputStepDefaultValue();\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: Array,\r\n public dialogRef: MatDialogRef,\r\n public saveConfirmationDialog: MatDialog,\r\n private feesAndTaxesService: FbofeesandtaxesService,\r\n private sharedService: SharedService,\r\n private pricingTemplateService: PricingtemplatesService,\r\n private fbopricesService: FbopricesService,\r\n private stringHelperService: StringHelperService\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n this.loadPricingTemplates();\r\n if (!this.data) {\r\n this.loadFeesAndTaxes();\r\n } else {\r\n this.prepareDataSource();\r\n }\r\n }\r\n\r\n public saveChanges(): void {\r\n var hasChange: boolean = false;\r\n\r\n for (const feeAndTax of this.data) {\r\n if (feeAndTax.requiresUpdate) {\r\n this.saveFeeAndTax(feeAndTax);\r\n hasChange = true;\r\n }\r\n }\r\n\r\n for (const deletedFeeAndTax of this.deletedFeesAndTaxes) {\r\n this.deleteFeeAndTax(deletedFeeAndTax);\r\n hasChange = true;\r\n }\r\n\r\n if (hasChange)\r\n this.fbopricesService.handlePriceChangeCleanUp(this.sharedService.currentUser.fboId).subscribe((response:\r\n any) => {\r\n //Cleanup finished.\r\n this.dialogRef.close(this.data);\r\n });\r\n else\r\n this.dialogRef.close(this.data);\r\n }\r\n\r\n public feeAndTaxChanged(feeAndTax, avoidRecalculation = false): void {\r\n feeAndTax.requiresUpdate = true;\r\n this.requiresSaving = true;\r\n if (!avoidRecalculation) {\r\n this.sampleCalculationChanged();\r\n }\r\n }\r\n\r\n public feeAndTaxDeleted(feeAndTax): void {\r\n this.data.splice(this.data.indexOf(feeAndTax), 1);\r\n this.deletedFeesAndTaxes.push(feeAndTax);\r\n this.requiresSaving = true;\r\n this.prepareDataSource();\r\n if (this.priceBreakdownPreview) {\r\n this.priceBreakdownPreview.feesAndTaxes = this.data;\r\n this.priceBreakdownPreview.performRecalculation();\r\n }\r\n }\r\n\r\n public feeAndTaxAdded(): void {\r\n this.data.push({\r\n calculationType: 0,\r\n departureType: 3,\r\n fboid: this.sharedService.currentUser.fboId,\r\n flightTypeClassification: 3,\r\n name: '',\r\n oid: 0,\r\n requiresUpdate: false,\r\n value: 0,\r\n whenToApply: 0,\r\n });\r\n this.prepareDataSource();\r\n this.requiresSaving = true;\r\n }\r\n\r\n public sampleCalculationChanged(): void {\r\n if (this.priceBreakdownPreview) {\r\n // Use a timeout here as the child component won't know of the template change until after the cycle\r\n const self = this;\r\n setTimeout(() => {\r\n self.priceBreakdownPreview.performRecalculation();\r\n });\r\n }\r\n }\r\n\r\n public feeValueChanged(feeAndTax, value) {\r\n try {\r\n feeAndTax.value = parseFloat(value);\r\n } catch (e) {\r\n feeAndTax.value = 0;\r\n }\r\n\r\n this.feeAndTaxChanged(feeAndTax);\r\n }\r\n\r\n public onCancelClick(): void {\r\n if (this.requiresSaving) {\r\n const dialogRef = this.saveConfirmationDialog.open(\r\n SaveConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n cancel: 'Cancel',\r\n customText:\r\n 'You have unsaved changes. Are you sure to close?',\r\n discard: 'Discard Changes',\r\n save: 'Save & Close',\r\n } as SaveConfirmationData,\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((confirmed) => {\r\n if (confirmed === 'save') {\r\n this.saveChanges();\r\n } else if (confirmed === 'discard') {\r\n this.dialogRef.close();\r\n }\r\n });\r\n } else {\r\n this.dialogRef.close();\r\n }\r\n }\r\n\r\n // Private Methods\r\n private loadFeesAndTaxes(): void {\r\n this.feesAndTaxesService\r\n .getByFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n this.data = response;\r\n this.prepareDataSource();\r\n });\r\n }\r\n\r\n private saveFeeAndTax(feeAndTax): void {\r\n if (feeAndTax.oid > 0) {\r\n this.feesAndTaxesService\r\n .update(feeAndTax)\r\n .subscribe((response: any) => {});\r\n } else {\r\n this.feesAndTaxesService\r\n .add(feeAndTax)\r\n .subscribe((response: any) => {\r\n feeAndTax.oid = response.oid;\r\n });\r\n }\r\n }\r\n\r\n private deleteFeeAndTax(feeAndTax): void {\r\n this.feesAndTaxesService\r\n .remove(feeAndTax)\r\n .subscribe((response: any) => {\r\n this.data.splice(this.data.indexOf(feeAndTax), 1);\r\n });\r\n }\r\n\r\n private prepareDataSource(): void {\r\n this.feeAndTaxDatasource = new MatTableDataSource(this.data);\r\n }\r\n\r\n private loadPricingTemplates(): void {\r\n this.pricingTemplateService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((response: any) => {\r\n this.pricingTemplates = response;\r\n for (const pricingTemplate of this.pricingTemplates) {\r\n if (pricingTemplate.default) {\r\n this.sampleCalculation.pricingTemplateId =\r\n pricingTemplate.oid;\r\n }\r\n }\r\n if (\r\n this.sampleCalculation.pricingTemplateId === 0 &&\r\n this.pricingTemplates.length > 0\r\n ) {\r\n this.sampleCalculation.pricingTemplateId =\r\n this.pricingTemplates[0].oid;\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n Fee and Tax Settings\r\n \r\n close\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n You do not currently have any fees or taxes added to your\r\n account. Click \"Add New\" below to begin.\r\n
\r\n
\r\n
\r\n
\r\n \r\n Add New\r\n \r\n
\r\n
\r\n
\r\n\r\n 0) || requiresSaving\"\r\n class=\"container-fluid\"\r\n >\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \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 Choose what you call each\r\n item.\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n Type of Fee\r\n
\r\n
\r\n Changes how the line item is\r\n applied.\r\n
\r\n
\r\n \r\n \r\n {{ calculationType.text }}\r\n \r\n \r\n \r\n
\r\n Applies to\r\n
\r\n
\r\n A sales tax is often \"below the\r\n line\"
FET is typically \"above\r\n the line\"
\r\n
\r\n
\r\n \r\n \r\n {{ whenToApply.text }}\r\n \r\n \r\n \r\n
Value
\r\n
\r\n The value of the fee.\r\n
\r\n
\r\n \r\n \r\n $\r\n %\r\n \r\n \r\n
\r\n Flight Types\r\n
\r\n
\r\n Choose whether each line item is\r\n applied based on teh flight type\r\n your customer quotes.\r\n
\r\n
\r\n \r\n \r\n {{ flightTypeClassification.text }}\r\n \r\n \r\n \r\n
\r\n Dom. v Int.\r\n
\r\n
\r\n Choose whether each line item\r\n applies to domestic or international\r\n flights.\r\n
\r\n
\r\n \r\n \r\n {{ applicableFlightType.text }}\r\n \r\n \r\n \r\n
\r\n \r\n Add New\r\n \r\n
\r\n
\r\n
\r\n \r\n Delete\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n Live sample calculation:\r\n
\r\n
\r\n
\r\n Customer's All-In Rate:\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n ITP Template\r\n \r\n \r\n {{ pricingTemplate.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 Save\r\n \r\n
\r\n\r\n","import { Component, ViewChild, HostListener } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { PriceCheckerComponent } from '../../../shared/components/price-checker/price-checker.component';\r\n\r\n// Services\r\n\r\n@Component({\r\n selector: 'app-price-checker-dialog',\r\n styleUrls: ['./price-checker-dialog.component.scss'],\r\n templateUrl: './price-checker-dialog.component.html',\r\n})\r\nexport class PriceCheckerDialogComponent {\r\n @ViewChild('priceChecker') private priceChecker: PriceCheckerComponent;\r\n public getScreenWidth: any;\r\n public getScreenHeight: any;\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n public dialogRef: MatDialogRef,\r\n ) {\r\n\r\n }\r\n\r\n get isCsr() {\r\n this.getScreenWidth = window.innerWidth;\r\n this.getScreenHeight = window.innerHeight;\r\n\r\n if (this.getScreenWidth <= 543)\r\n return true;\r\n else\r\n return this.sharedService.isCsr;\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n
\r\n Price Checker\r\n \r\n close\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 } from '@angular/router';\r\nimport { forEach } from 'lodash';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { PriceCheckerComponent } from '../../../shared/components/price-checker/price-checker.component';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { FbomissedquoteslogService } from '../../../services/fbomissedquoteslog.service';\r\nimport { UserRole } from 'src/app/enums/user-role';\r\nimport { AnaliticsReportType } from '../../analytics/analytics-report-popup/analytics-report-popup.component';\r\n\r\n@Component({\r\n selector: 'app-fbos-missed-orders-grid',\r\n styleUrls: ['./fbos-missed-orders-grid.component.scss'],\r\n templateUrl: './fbos-missed-orders-grid.component.html',\r\n})\r\nexport class FbosMissedOrdersGridComponent implements OnInit {\r\n fbosMissedOrdersDataSource: any = null;\r\n missedOrdersLoader = 'missed-orders-loader';\r\n noMissedOrders = false;\r\n\r\n constructor(private router: Router,\r\n private sharedService: SharedService,\r\n private fboMissedQuotesLogService: FbomissedquoteslogService,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private priceCheckerDialog: MatDialog ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshMissedOrdersDataSource();\r\n }\r\n\r\n goToMissedOrders(missedOrder: any): void {\r\n this.router.navigate(['/default-layout/fuelreqs'], {queryParams: {search: missedOrder.customerName, tab: 1}});\r\n }\r\n\r\n goToAnalyticsReports(): void {\r\n this.router.navigate(['/default-layout/analytics'], { queryParams: { report: AnaliticsReportType.LostToCompetition } });\r\n }\r\n\r\n goToCustomerDetails(missedOrder: any): void {\r\n this.router.navigate(['/default-layout/customers/' + missedOrder.customerInfoByGroupId], { queryParams: { tab: 2 } });\r\n }\r\n\r\n openPriceChecker(): void {\r\n const dialogRef = this.priceCheckerDialog.open(\r\n PriceCheckerComponent,\r\n {\r\n width: '100%',\r\n height: '100%'\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n\r\n if (!result) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n get isCsr() {\r\n return this.sharedService.isCsr;\r\n }\r\n\r\n private refreshMissedOrdersDataSource() {\r\n this.NgxUiLoader.startLoader(this.missedOrdersLoader);\r\n this.fboMissedQuotesLogService.getRecentMissedOrders(this.sharedService.currentUser.fboId)\r\n .subscribe(\r\n (data: any) => {\r\n this.fbosMissedOrdersDataSource = data;\r\n if (this.fbosMissedOrdersDataSource.length == 0)\r\n this.noMissedOrders = true;\r\n this.NgxUiLoader.stopLoader(this.missedOrdersLoader);\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n
\r\n
FuelerLinx customers that have dispatched fuel at another FBO at your airport.
\r\n
No Missed Orders
\r\n
\r\n
\r\n
\r\n
Company
\r\n
Aircraft
\r\n
Quantity
\r\n
Time of Dispatch
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ missedOrder.customerName }}
\r\n
{{missedOrder.tailNumber}}
\r\n
{{ missedOrder.missedQuotesCount }} Missed order{{missedOrder.missedQuotesCount < 2 ? \"\" : \"s\" }}
\r\n
{{ missedOrder.createdDate }}
\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 } from '@angular/router';\r\nimport { forEach } from 'lodash';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { PriceCheckerDialogComponent } from '../../fbo-prices/price-checker-dialog/price-checker-dialog.component';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { FbomissedquoteslogService } from '../../../services/fbomissedquoteslog.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-fbos-missed-quotes-grid',\r\n styleUrls: ['./fbos-missed-quotes-grid.component.scss'],\r\n templateUrl: './fbos-missed-quotes-grid.component.html',\r\n})\r\nexport class FbosMissedQuotesGridComponent implements OnInit {\r\n fbosMissedQuotesDataSource: any = null;\r\n missedQuotesLoader = 'missed-quotes-loader';\r\n noMissedQuotes = false;\r\n getScreenWidth: any;\r\n getScreenHeight: any;\r\n\r\n constructor(private router: Router,\r\n private sharedService: SharedService,\r\n private fboMissedQuotesLogService: FbomissedquoteslogService,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private priceCheckerDialog: MatDialog ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshMissedQuotesDataSource();\r\n }\r\n\r\n\r\n openPriceChecker(): void {\r\n this.getScreenWidth = window.innerWidth;\r\n this.getScreenHeight = window.innerHeight;\r\n\r\n var dialogWidth = \"650px\";\r\n var dialogHeight = \"600px\";\r\n\r\n if (this.getScreenWidth <= 543) {\r\n dialogWidth = \"100%\";\r\n dialogHeight = \"80%\";\r\n }\r\n\r\n const dialogRef = this.priceCheckerDialog.open(\r\n PriceCheckerDialogComponent\r\n ,\r\n {\r\n width: dialogWidth,\r\n height: dialogHeight\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n \r\n if (!result) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n private refreshMissedQuotesDataSource() {\r\n this.NgxUiLoader.startLoader(this.missedQuotesLoader);\r\n this.fboMissedQuotesLogService.getRecentMissedQuotes(this.sharedService.currentUser.fboId)\r\n .subscribe(\r\n (data: any) => {\r\n this.fbosMissedQuotesDataSource = data;\r\n if (this.fbosMissedQuotesDataSource.length == 0)\r\n this.noMissedQuotes = true;\r\n this.NgxUiLoader.stopLoader(this.missedQuotesLoader);\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
These flights departments requested a quote and your pricing was expired:
\r\n
No Missed Quotes
\r\n
\r\n
\r\n
\r\n
{{ missedQuote.customerName }}
\r\n
{{ missedQuote.missedQuotesCount }} Missed quote{{missedQuote.missedQuotesCount < 2 ? \"\" : \"s\" }}
\r\n
{{ missedQuote.createdDate }}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fbos-contacts',\r\n styleUrls: ['./fbos-contacts.component.scss'],\r\n templateUrl: './fbos-contacts.component.html',\r\n})\r\nexport class FbosContactsComponent {\r\n @Output() recordDeleted = new EventEmitter();\r\n @Output() newFboContactClicked = new EventEmitter();\r\n @Output() editFboContactClicked = new EventEmitter();\r\n @Input() fboContactsData: Array;\r\n\r\n constructor() {}\r\n}\r\n","
fbos-contacts Component
\r\n","import { Component, EventEmitter, Inject, Output } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FbosService } from 'src/app/services/fbos.service';\r\n\r\n// Services\r\nimport { AcukwikairportsService } from '../../../services/acukwikairports.service';\r\n\r\n// Interfaces\r\nexport interface NewFBODialogData {\r\n oid: number;\r\n fbo: string;\r\n icao: string;\r\n iata: string;\r\n acukwikFboHandlerId: number;\r\n acukwikFbo: any;\r\n groupId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-fbos-dialog-new-fbo',\r\n styleUrls: ['./fbos-dialog-new-fbo.component.scss'],\r\n templateUrl: './fbos-dialog-new-fbo.component.html',\r\n})\r\nexport class FbosDialogNewFboComponent {\r\n @Output() contactAdded = new EventEmitter();\r\n\r\n // Public Members\r\n public dataSources: any = {};\r\n public errorMessage: string = '';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewFBODialogData,\r\n private acukwikairportsService: AcukwikairportsService,\r\n private fbosService: FbosService\r\n ) {}\r\n\r\n public airportValueChanged(airport: any) {\r\n this.data.icao = airport.icao;\r\n this.data.iata = airport.iata;\r\n this.acukwikairportsService\r\n .getAcukwikFboHandlerDetailByIcao(this.data.icao)\r\n .subscribe((result: any) => {\r\n this.dataSources.acukwikFbos = [];\r\n if (!result) {\r\n return;\r\n }\r\n this.dataSources.acukwikFbos.push(...result);\r\n });\r\n }\r\n\r\n public fboSelectionChange() {\r\n this.fbosService.getByAcukwikHandlerId(this.data.acukwikFbo.handlerId).subscribe((result: any) => {\r\n //No pre-existing record exists for that FBO in another group - allow adding\r\n if (!result || result.oid == 0) {\r\n this.errorMessage = '';\r\n this.data.fbo = this.data.acukwikFbo.handlerLongName;\r\n this.data.acukwikFboHandlerId = this.data.acukwikFbo.handlerId;\r\n } else {\r\n this.errorMessage = 'That FBO is already part of a group.';\r\n }\r\n\r\n });\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onSaveChanges(): void {\r\n this.fbosService.add(this.data).subscribe((newFbo: any) => {\r\n this.dialogRef.close(newFbo);\r\n });\r\n }\r\n}\r\n","

New FBO

\r\n
\r\n \r\n 0\"\r\n >\r\n \r\n {{ acukwikFbo.handlerLongName }}\r\n \r\n \r\n
\r\n
\r\n

{{errorMessage}}

\r\n
\r\n
\r\n \r\n Add FBO\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { ContactsService } from '../../../services/contacts.service';\r\nimport { FboairportsService } from '../../../services/fboairports.service';\r\nimport { FbocontactsService } from '../../../services/fbocontacts.service';\r\n// Services\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { GroupsService } from '../../../services/groups.service';\r\nimport { AirportWatchService } from '../../../services/airportwatch.service';\r\nimport {\r\n CloseConfirmationComponent,\r\n CloseConfirmationData,\r\n} from '../../../shared/components/close-confirmation/close-confirmation.component';\r\n\r\n@Component({\r\n selector: 'app-fbos-edit',\r\n styleUrls: ['./fbos-edit.component.scss'],\r\n templateUrl: './fbos-edit.component.html',\r\n})\r\nexport class FbosEditComponent implements OnInit {\r\n @Input() fboInfo: any;\r\n @Input() fboAirportInfo: any;\r\n @Input() groupInfo: any;\r\n @Input() embed: boolean;\r\n @Output() saveClicked = new EventEmitter();\r\n @Output() cancelClicked = new EventEmitter();\r\n\r\n // Members\r\n breadcrumb: any[];\r\n pageTitle = 'Edit FBO';\r\n currentContact: any;\r\n contactsData: any;\r\n groups: Array;\r\n availableAntennas: any[];\r\n availableAccountTypes: any[] = [{ type: \"Premium\", value: 0 }, { type: \"Freemium\", value: 1}];\r\n\r\n // Private Members\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private fboService: FbosService,\r\n private fboAirportsService: FboairportsService,\r\n private fboContactsService: FbocontactsService,\r\n private contactsService: ContactsService,\r\n private groupsService: GroupsService,\r\n private sharedService: SharedService,\r\n private confirmDialog: MatDialog,\r\n private airportWatchService: AirportWatchService\r\n ) {\r\n \r\n }\r\n\r\n get canChangeActive() {\r\n return (\r\n !this.embed &&\r\n this.sharedService.currentUser.role === 3 &&\r\n !this.sharedService.currentUser.impersonatedRole\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n if (this.fboInfo) {\r\n this.loadAdditionalFboInfo();\r\n } else {\r\n const id = this.route.snapshot.paramMap.get('id');\r\n this.fboService\r\n .get({\r\n oid: id,\r\n })\r\n .subscribe((data: any) => {\r\n this.fboInfo = data;\r\n this.loadAdditionalFboInfo();\r\n });\r\n this.fboAirportsService\r\n .getForFbo({\r\n oid: id,\r\n })\r\n .subscribe((data: any) => (this.fboAirportInfo = data));\r\n }\r\n }\r\n\r\n saveEdit() {\r\n if (sessionStorage.getItem('isNewFbo')) {\r\n sessionStorage.removeItem('isNewFbo');\r\n }\r\n this.fboAirportInfo.fboId = this.fboInfo.oid;\r\n this.fboService.update(this.fboInfo).subscribe(() => {\r\n this.fboAirportsService\r\n .update(this.fboAirportInfo)\r\n .subscribe(() => {\r\n this.saveClicked.emit(this.fboInfo);\r\n this.navigateToParent();\r\n });\r\n });\r\n }\r\n\r\n cancelEdit() {\r\n if (sessionStorage.getItem('isNewFbo')) {\r\n this.fboService.remove(this.fboInfo).subscribe(() => {\r\n sessionStorage.removeItem('isNewFbo');\r\n this.saveClicked.emit(this.fboInfo);\r\n });\r\n } else {\r\n this.cancelClicked.emit();\r\n this.navigateToParent();\r\n }\r\n }\r\n\r\n navigateToParent() {\r\n if (\r\n this.sharedService.currentUser.role === 3 &&\r\n !this.sharedService.currentUser.impersonatedRole\r\n ) {\r\n if (this.groupInfo) {\r\n this.router.navigate([\r\n '/default-layout/groups/' + this.groupInfo.oid,\r\n ]);\r\n } else {\r\n this.router.navigate(['/default-layout/groups/']);\r\n }\r\n } else {\r\n this.router.navigate(['/default-layout/fbos/']);\r\n }\r\n }\r\n\r\n contactDeleted(record) {\r\n this.fboContactsService.remove(record).subscribe(() => {\r\n this.fboContactsService\r\n .getForFbo(this.fboInfo)\r\n .subscribe((data: any) => (this.contactsData = data));\r\n });\r\n }\r\n\r\n newContactClicked() {\r\n this.currentContact = {\r\n oid: 0,\r\n };\r\n }\r\n\r\n editContactClicked(record) {\r\n this.contactsService\r\n .get({\r\n oid: record.contactId,\r\n })\r\n .subscribe((data: any) => (this.currentContact = data));\r\n }\r\n\r\n saveEditContactClicked() {\r\n this.contactsService.update(this.currentContact).subscribe(() => {\r\n this.currentContact = null;\r\n });\r\n }\r\n\r\n cancelEditContactClicked() {\r\n this.currentContact = null;\r\n }\r\n\r\n onActiveToggle(event) {\r\n if (event.checked && this.fboInfo.expirationDate) {\r\n this.confirmDialog\r\n .open(CloseConfirmationComponent, {\r\n data: {\r\n cancel: 'Cancel',\r\n customText:\r\n 'Account Expiry date is set. If you activate this account, it will be removed.',\r\n customTitle: 'Account Expired!',\r\n ok: 'Set Active',\r\n } as CloseConfirmationData,\r\n })\r\n .afterClosed()\r\n .subscribe((confirmed) => {\r\n if (!confirmed) {\r\n this.fboInfo.active = false;\r\n return;\r\n }\r\n\r\n this.fboInfo.expirationDate = null;\r\n });\r\n }\r\n }\r\n\r\n get isConductor() {\r\n return this.sharedService.currentUser.role === 3;\r\n }\r\n\r\n // Private Methods\r\n private loadAdditionalFboInfo() {\r\n this.fboContactsService\r\n .getForFbo(this.fboInfo)\r\n .subscribe((data: any) => (this.contactsData = data));\r\n this.groupsService\r\n .getAllGroups()\r\n .subscribe((data: any) => (this.groups = data));\r\n this.airportWatchService\r\n .getUnassignedAntennaBoxes(this.fboInfo.antennaName)\r\n .subscribe((data: any) => (this.availableAntennas = data));\r\n }\r\n}\r\n","
\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 Information
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n  \r\n
\r\n
\r\n Antenna Box Name\r\n \r\n \r\n \r\n {{ antenna }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Account Information
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ group.groupName }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n @FBOLinx.com\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 Suspended\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n clear\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n JetNet Integration\r\n \r\n
\r\n
\r\n
\r\n
\r\n Account Type\r\n \r\n \r\n \r\n {{ accountType.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 \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, Inject, Output } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { AcukwikairportsService } from '../../../services/acukwikairports.service';\r\nimport { FbosService } from '../../../services/fbos.service';\r\n\r\n// Interfaces\r\nexport interface NewFboModel {\r\n oid: number;\r\n fbo: string;\r\n icao: string;\r\n iata: string;\r\n acukwikFboHandlerId: number;\r\n acukwikFbo: any;\r\n group: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-fbos-grid-new-fbo-dialog',\r\n styleUrls: ['./fbos-grid-new-fbo-dialog.component.scss'],\r\n templateUrl: './fbos-grid-new-fbo-dialog.component.html',\r\n})\r\nexport class FbosGridNewFboDialogComponent {\r\n @Output() contactAdded = new EventEmitter();\r\n public errorHappened = false;\r\n public errorMessage: string = '';\r\n // Public Members\r\n public dataSources: any = {};\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewFboModel,\r\n private acukwikairportsService: AcukwikairportsService,\r\n private fboService: FbosService\r\n ) {}\r\n\r\n public airportValueChanged(airport: any) {\r\n this.data.icao = airport.icao;\r\n this.data.iata = airport.iata;\r\n this.dataSources.acukwikFbos = [];\r\n this.data.acukwikFbo = null;\r\n this.acukwikairportsService\r\n .getAcukwikFboHandlerDetailByIcao(this.data.icao)\r\n .subscribe((result: any) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.dataSources.acukwikFbos.push(...result);\r\n });\r\n }\r\n\r\n public fboSelectionChange() {\r\n this.fboService.getByAcukwikHandlerId(this.data.acukwikFbo.handlerId).subscribe((result: any) => {\r\n //No pre-existing record exists for that FBO in another group - allow adding\r\n if (!result || result.oid == 0) {\r\n this.errorMessage = '';\r\n this.data.fbo = this.data.acukwikFbo.handlerLongName;\r\n this.data.acukwikFboHandlerId = this.data.acukwikFbo.handlerId;\r\n this.data.group = `${this.data.fbo} - ${this.data.icao}`;\r\n } else {\r\n this.errorMessage = 'That FBO is already part of a group.';\r\n }\r\n\r\n });\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onSaveClick(data): void {\r\n this.errorHappened = false;\r\n\r\n this.fboService.addSingleFbo(data).subscribe(\r\n (newFbo: any) => {\r\n this.dialogRef.close(newFbo);\r\n },\r\n (err) => {\r\n this.errorHappened = true;\r\n }\r\n );\r\n }\r\n}\r\n","

New FBO

\r\n
\r\n \r\n 0\"\r\n >\r\n \r\n {{ acukwikFbo.handlerLongName }}\r\n \r\n \r\n \r\n Group\r\n \r\n \r\n
\r\n
\r\n

FBO not saved, please contact us to investigate the issue.

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

{{errorMessage}}

\r\n
\r\n
\r\n \r\n Add FBO\r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Router } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { UserRole } from 'src/app/enums/user-role';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { accountTypeChangedEvent, fboChangedEvent } from '../../../constants/sharedEvents';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\n// Services\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { ManageConfirmationComponent } from '../../../shared/components/manage-confirmation/manage-confirmation.component';\r\nimport { PricingExpiredNotificationGroupComponent } from '../../../shared/components/pricing-expired-notification-group/pricing-expired-notification-group.component';\r\n// Components\r\nimport { FbosDialogNewFboComponent } from '../fbos-dialog-new-fbo/fbos-dialog-new-fbo.component';\r\nimport { FbosGridNewFboDialogComponent } from '../fbos-grid-new-fbo-dialog/fbos-grid-new-fbo-dialog.component';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { GroupsService } from 'src/app/services/groups.service';\r\nimport { ManageFboGroupsService } from 'src/app/services/managefbo.service';\r\nimport { GroupFboViewModel } from 'src/app/models/groups';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-fbos-grid',\r\n styleUrls: ['./fbos-grid.component.scss'],\r\n templateUrl: './fbos-grid.component.html',\r\n})\r\nexport class FbosGridComponent implements OnInit {\r\n // Input/Output Bindings\r\n @Output() editFboClicked = new EventEmitter();\r\n @Input() fbosData: Array;\r\n @Input() groupInfo: any;\r\n @Input() groupsFbosData: GroupFboViewModel;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n // Public Members\r\n public pageTitle = 'FBOs';\r\n public fbosDataSource: MatTableDataSource = null;\r\n public displayedColumns: string[] = ['icao', 'fbo', 'active', 'manage'];\r\n public airportData: Array;\r\n public resultsLength = 0;\r\n public canManageFbo = false;\r\n public isDeleting: boolean;\r\n public searchValue = '';\r\n\r\n public pageIndexFbos = 0;\r\n public pageSizeFbos = 25;\r\n\r\n public tableSortFbos = 'icao';\r\n public tableSortOrderFbos = 'asc';\r\n\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private newFboDialog: MatDialog,\r\n private fboService: FbosService,\r\n private fboPricesService: FbopricesService,\r\n private sharedService: SharedService,\r\n private deleteFboDialog: MatDialog,\r\n private manageFboDialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private router: Router,\r\n private checkPricingDialog: MatDialog,\r\n private groupsService: GroupsService,\r\n private manageFboGroupsService: ManageFboGroupsService\r\n ) {\r\n \r\n this.canManageFbo = [UserRole.Conductor, UserRole.GroupAdmin].includes(\r\n this.sharedService.currentUser.role\r\n );\r\n\r\n if (this.sharedService.currentUser.role === UserRole.Conductor) {\r\n this.displayedColumns = [\r\n 'icao',\r\n 'fbo',\r\n 'price',\r\n 'active',\r\n 'edit',\r\n 'delete',\r\n ];\r\n } else {\r\n this.displayedColumns = ['icao', 'fbo', 'price', 'active', 'edit'];\r\n }\r\n }\r\n\r\n async ngOnInit() {\r\n if (!this.fbosData) {\r\n return;\r\n }\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.refreshTable();\r\n if (this.sharedService.currentUser.role !== 3) {\r\n const remindMeLaterFlag = localStorage.getItem(\r\n 'pricingExpiredNotification'\r\n );\r\n const noThanksFlag = sessionStorage.getItem(\r\n 'pricingExpiredNotification'\r\n );\r\n if (noThanksFlag) {\r\n return;\r\n }\r\n\r\n if (\r\n remindMeLaterFlag &&\r\n moment(new Date(moment().format('L'))) <=\r\n moment(new Date(remindMeLaterFlag))\r\n ) {\r\n return;\r\n }\r\n\r\n this.checkExistingPrices();\r\n }\r\n\r\n this.paginator.pageIndex = 0;\r\n }\r\n ngOnDestory() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n public deleteRecord(record) {\r\n const dialogRef = this.deleteFboDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'FBO', item: record, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.isDeleting = true;\r\n this.fboService.remove(record).subscribe(\r\n () => {\r\n this.fbosData.splice(this.fbosData.indexOf(record), 1);\r\n this.sort.sortChange.subscribe(() => {\r\n this.paginator.pageIndex = 0;\r\n });\r\n this.refreshTable();\r\n this.isDeleting = false;\r\n this.snackBar.open(record.fbo + ' is deleted', '', {\r\n duration: 2000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n },\r\n () => {\r\n this.isDeleting = false;\r\n }\r\n );\r\n });\r\n }\r\n\r\n public editRecord(record) {\r\n this.editFboClicked.emit(record);\r\n }\r\n\r\n public newRecord() {\r\n var groupId = 0;\r\n if (this.sharedService.isManagingGroup())\r\n groupId = this.sharedService.currentUser.groupId;\r\n else if (this.groupInfo)\r\n groupId = this.groupInfo.oid;\r\n if (groupId > 0) {\r\n const dialogRef = this.newFboDialog.open(\r\n FbosDialogNewFboComponent,\r\n {\r\n data: {\r\n groupId: groupId,\r\n initialSetupPhase: true,\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.fbosData.push(result);\r\n\r\n this.refreshTable();\r\n this.snackBar.open(result.fbo + ' is created', '', {\r\n duration: 3000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n sessionStorage.setItem('isNewFbo', 'yes');\r\n this.editRecord(result);\r\n }\r\n });\r\n } else {\r\n const dialogRef = this.newFboDialog.open(\r\n FbosGridNewFboDialogComponent,\r\n {\r\n data: {},\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.fbosData.push(result);\r\n this.refreshTable();\r\n this.snackBar.open(result.fbo + ' is created', '', {\r\n duration: 3000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n sessionStorage.setItem('isNewFbo', 'yes');\r\n this.router.navigate([\r\n '/default-layout/fbos/' + result.oid,\r\n ]);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public refreshTable() {\r\n this.fbosDataSource = new MatTableDataSource(this.fbosData);\r\n this.fbosDataSource.sort = this.sort;\r\n this.fbosDataSource.paginator = this.paginator;\r\n this.resultsLength = this.fbosData.length;\r\n }\r\n\r\n public applyFilter(filterValue: string) {\r\n this.fbosDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n public manageFBO(fbo, $event) {\r\n if (\r\n ($event !== null &&\r\n ($event.srcElement.nodeName.toLowerCase() === 'button' ||\r\n $event.srcElement.nodeName.toLowerCase() === 'select' ||\r\n ($event.srcElement.nodeName.toLowerCase() === 'input' &&\r\n $event.srcElement.getAttribute('type') ===\r\n 'checkbox'))) ||\r\n !this.canManageFbo\r\n ) {\r\n $event.stopPropagation();\r\n return;\r\n }\r\n\r\n const dialogRef = this.manageFboDialog.open(\r\n ManageConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n description:\r\n 'This will temporarily switch your account to a primary user for this FBO. Would you like to continue?',\r\n fboId: fbo.oid,\r\n title: 'Manage FBO?',\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n if (this.sharedService.currentUser.role != 3) {\r\n this.fboService.updateLastLogin(fbo.oid).subscribe((data: any) => {\r\n this.completeManageProcess(fbo);\r\n });\r\n }\r\n else\r\n this.completeManageProcess(fbo);\r\n });\r\n }\r\n\r\n public checkExistingPrices() {\r\n this.fboPricesService\r\n .checkFboExpiredPricingGroup(this.sharedService.currentUser.groupId)\r\n .subscribe((data: any) => {\r\n if (this.sharedService.currentUser.role != 6 && this.sharedService.currentUser.fboId > 0 && data && data.length) {\r\n const dialogRef = this.checkPricingDialog.open(\r\n PricingExpiredNotificationGroupComponent,\r\n {\r\n data,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result && result.fboId) {\r\n this.sharedService.currentUser.impersonatedRole = 1;\r\n this.sharedService.currentUser.fboId = result.fboId;\r\n localStorage.setItem(\r\n 'fboId',\r\n this.sharedService.currentUser.fboId.toString()\r\n );\r\n this.sharedService.emitChange(fboChangedEvent);\r\n this.router.navigate([\r\n '/default-layout/dashboard-fbo-updated/',\r\n ]);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n async completeManageProcess(fbo) {\r\n localStorage.setItem(\r\n 'managerGroupId',\r\n this.sharedService.currentUser.groupId.toString()\r\n );\r\n this.sharedService.currentUser.managerGroupId =\r\n this.sharedService.currentUser.groupId;\r\n\r\n localStorage.setItem('groupId', fbo.groupId.toString());\r\n this.sharedService.currentUser.groupId = fbo.groupId;\r\n\r\n localStorage.setItem('impersonatedrole', '1');\r\n this.sharedService.currentUser.impersonatedRole = 1;\r\n\r\n localStorage.setItem('fboId', fbo.oid.toString());\r\n this.sharedService.currentUser.fboId = fbo.oid;\r\n\r\n this.sharedService.currentUser.icao = fbo.icao;\r\n\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.accountType,fbo.accountType);\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.isNetworkFbo,\r\n this.manageFboGroupsService\r\n .isNetworkFbo(this.groupsFbosData, fbo.groupId)\r\n .toString()\r\n );\r\n\r\n var isSingleSourceFbo = await this.groupsService.isGroupFboSingleSource(fbo.icao).toPromise();\r\n\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.isSingleSourceFbo,isSingleSourceFbo.toString());\r\n\r\n this.sharedService.emitChange(fboChangedEvent);\r\n this.sharedService.emitChange(accountTypeChangedEvent);\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated/']);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n ICAO\r\n {{ fbo.icao }}\r\n \r\n\r\n \r\n FBO\r\n {{ fbo.fbo }}\r\n \r\n\r\n \r\n \r\n Retail / Cost\r\n \r\n \r\n {{\r\n fbo.retailPrice\r\n ? \"$\" + (fbo.retailPrice | decimalPrecision)\r\n : \"Expired\"\r\n }}\r\n /\r\n {{\r\n fbo.costPrice\r\n ? \"$\" + (fbo.costPrice | decimalPrecision)\r\n : \"Expired\"\r\n }}\r\n \r\n \r\n\r\n \r\n \r\n Pricing Status\r\n \r\n \r\n \r\n {{\r\n !fbo.retailPrice && !fbo.costPrice\r\n ? \"Expired\"\r\n : \"Pricing Live\"\r\n }}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n Edit\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n \r\n Add New\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Delete\r\n \r\n
\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, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { FboairportsService } from '../../../services/fboairports.service';\r\n// Services\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { GroupFboViewModel } from 'src/app/models/groups';\r\nimport { GroupsService } from 'src/app/services/groups.service';\r\n\r\n@Component({\r\n selector: 'app-fbos-home',\r\n styleUrls: ['./fbos-home.component.scss'],\r\n templateUrl: './fbos-home.component.html',\r\n})\r\nexport class FbosHomeComponent implements OnInit {\r\n @Input() groupInfo: any;\r\n @Input() embed: boolean;\r\n\r\n // Public Members\r\n public fbosData: Array;\r\n public currentFbo: any;\r\n public currentFboAirport: any;\r\n public chartName = 'FBOs';\r\n public groupsFbosData: GroupFboViewModel;\r\n\r\n constructor(\r\n private router: Router,\r\n private fboService: FbosService,\r\n private fboAirportsService: FboairportsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private groupsService: GroupsService\r\n ) {\r\n this.currentFbo = null;\r\n this.currentFboAirport = null;\r\n }\r\n\r\n async ngOnInit() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n let fboDataPromise = this.loadAllFbosForGroup();\r\n\r\n const groupId = this.sharedService.currentUser.groupId;\r\n let groupsFbosDataPromise = this.groupsService.groupsAndFbos(groupId).toPromise();\r\n \r\n Promise.all([fboDataPromise, groupsFbosDataPromise]).then(results => {\r\n this.fbosData = results[0];\r\n this.groupsFbosData = results[1];\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n\r\n public editFboClicked(record) {\r\n if (!this.groupInfo) {\r\n this.router.navigate(['/default-layout/fbos/' + record.oid]);\r\n } else {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.fboService\r\n .get(record)\r\n .subscribe((data: any) => { this.currentFbo = data; this.ngxLoader.stopLoader(this.chartName); });\r\n this.fboAirportsService\r\n .getForFbo(record)\r\n .subscribe((data: any) => { this.currentFboAirport = data; this.ngxLoader.stopLoader(this.chartName); });\r\n }\r\n }\r\n\r\n public async saveFboEditClicked() {\r\n this.currentFboAirport = null;\r\n this.currentFbo = null;\r\n this.fbosData = null;\r\n this.fbosData = await this.loadAllFbosForGroup(); \r\n }\r\n\r\n public cancelFboEditClicked() {\r\n this.currentFbo = null;\r\n }\r\n\r\n // Private Methods\r\n private async loadAllFbosForGroup() :Promise {\r\n let groupId = (!this.groupInfo) ? this.sharedService.currentUser.groupId : this.groupInfo.oid;\r\n return this.fboService.getForGroup(groupId).toPromise();\r\n } \r\n}\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\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlightWatchHelper {\r\n\r\nconstructor() { }\r\n\r\n getSlashSeparationDisplayString(e1: any,e2: any){\r\n let str = (e1)?e1:\"\";\r\n str += (e1 && e2)?\"/\":\"\";\r\n str += (e2)?e2:\"\";\r\n return str;\r\n }\r\n getEmptyorDefaultStringText(str: string){\r\n return str == \"\" ? \"Unknown\" : str ;\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-aircraft-legend',\r\n templateUrl: './aircraft-legend.component.html',\r\n styleUrls: ['./aircraft-legend.component.scss']\r\n})\r\nexport class AircraftLegendComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n FuelerLinx Client\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Active Fuel Release\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n Out of Network\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n In Network\r\n
\r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { DefaultUrlSerializer, Router } from '@angular/router';\r\nimport { CustomersListType } from 'src/app/models';\r\nimport { Aircraftwatch } from 'src/app/models/flight-watch';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { AircraftAssignModalComponent, NewCustomerAircraftDialogData } from 'src/app/shared/components/aircraft-assign-modal/aircraft-assign-modal.component';\r\nimport { FlightWatchMapSharedService } from '../services/flight-watch-map-shared.service';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { JetNetInformationComponent } from '../../../shared/components/jetnet-information/jetnet-information.component';\r\nimport { JetNetService } from '../../../services/jetnet.service';\r\nimport { JetNet } from '../../../models/jetnet-information';\r\nimport { NullOrEmptyToDefault } from 'src/app/shared/pipes/null/NullOrEmptyToDefault.pipe';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\n\r\n@Component({\r\n providers: [NullOrEmptyToDefault],\r\n selector: 'app-aircraft-popup-container',\r\n templateUrl: './aircraft-popup-container.component.html',\r\n styleUrls: ['./aircraft-popup-container.component.scss'],\r\n})\r\nexport class AircraftPopupContainerComponent {\r\n @Input() flightData: Aircraftwatch;\r\n @Input() isLoading: boolean;\r\n @Input() fboId: any;\r\n @Input() groupId: any;\r\n\r\n public aircraftWatch: Aircraftwatch = {\r\n customerInfoByGroupId : 0,\r\n tailNumber: '',\r\n atcFlightNumber: '',\r\n aircraftTypeCode: '',\r\n isAircraftOnGround: false,\r\n flightDepartment: '',\r\n aircraftMakeModel: '',\r\n lastQuote: '',\r\n currentPricing: '',\r\n aircraftICAO: '',\r\n faaRegisteredOwner: '',\r\n origin: '',\r\n destination: '',\r\n isJetNetEnabled: false\r\n };\r\n public hasAircraft = false;\r\n public customers: CustomersListType[] = []\r\n public selectedFboId: number;\r\n public selectedGroupId: number;\r\n private newChanges: any;\r\n public hasJetNetInformation: boolean = false;\r\n public isJetNetOpened: boolean = false;\r\n\r\n constructor(\r\n private newCustomerAircraftDialog: MatDialog,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private router: Router,\r\n private flightWatchMapSharedService: FlightWatchMapSharedService,\r\n private sharedService: SharedService,\r\n private jetNetInformationDialog: MatDialog,\r\n private jetNetService: JetNetService,\r\n private nullOrEmptyToDefault: NullOrEmptyToDefault\r\n ) { }\r\n ngOnChanges(changes) {\r\n if (changes.flightData?.currentValue != undefined && changes.flightData?.currentValue.atcFlightNumber != this.newChanges) {\r\n this.isLoading = true;\r\n this.newChanges = changes.flightData.currentValue.atcFlightNumber;\r\n\r\n if (changes.flightData?.currentValue) {\r\n this.aircraftWatch = changes.flightData.currentValue;\r\n\r\n if (changes.flightData?.currentValue?.flightDepartment) {\r\n this.hasAircraft = true;\r\n this.isLoading = false;\r\n }\r\n else\r\n this.getJetNetCustomerName();\r\n }\r\n }\r\n }\r\n ngOnInit(){\r\n if(this.fboId && this.groupId)\r\n this.getCustomersList(this.groupId,this.fboId);\r\n }\r\n\r\n get isJetNetIntegrationEnabled() {\r\n return this.sharedService.currentUser.isJetNetIntegrationEnabled;\r\n }\r\n get isCustomerManagerButtonDisabled() {\r\n return !this.hasAircraft || this.sharedService.isCsr || this.aircraftWatch?.customerInfoByGroupId == null || this.aircraftWatch?.customerInfoByGroupId == 0;\r\n }\r\n\r\n addAircraft() {\r\n const dialogRef = this.newCustomerAircraftDialog.open<\r\n AircraftAssignModalComponent,\r\n Partial\r\n >(AircraftAssignModalComponent, {\r\n data: {\r\n customers: this.customers,\r\n tailNumber: this.flightData.tailNumber\r\n },\r\n panelClass: 'aircraft-assign-modal',\r\n width: '450px',\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .subscribe((result: any) => {\r\n if (result) {\r\n this.hasAircraft = true;\r\n this.aircraftWatch.aircraftMakeModel = result.aircraftType;\r\n this.aircraftWatch.flightDepartment = result.company;\r\n this.aircraftWatch.tailNumber = this.flightData.tailNumber;\r\n this.aircraftWatch.customerInfoByGroupId = result.customerInfoByGroupID;\r\n this.flightWatchMapSharedService.updateCustomerAicraftData(this.aircraftWatch);\r\n }\r\n });\r\n }\r\n\r\n get companyDisplayText() {\r\n const defaultstring = this.nullOrEmptyToDefault.transform(this.aircraftWatch?.flightDepartment,defaultStringsEnum.unknown);\r\n return !this.isJetNetIntegrationEnabled\r\n ? defaultstring\r\n : (!this.hasJetNetInformation)\r\n ? this.aircraftWatch?.flightDepartment ?? 'Info N/A on JETNET' \r\n : defaultstring\r\n }\r\n\r\n getCustomersList(groupId,fboId) {\r\n this.customerInfoByGroupService\r\n .getCustomersListByGroupAndFbo(\r\n groupId,\r\n fboId\r\n )\r\n .subscribe((customers: any[]) => {\r\n this.customers = customers;\r\n });\r\n }\r\n goToCustomerManager(customerInfoByGroupId: number): void {\r\n this.router.navigate([\r\n './default-layout',\r\n 'customers',\r\n customerInfoByGroupId,\r\n ]);\r\n }\r\n\r\n openJetNetInformation() {\r\n this.isJetNetOpened = true;\r\n const dialogRef = this.jetNetInformationDialog.open(\r\n JetNetInformationComponent,\r\n {\r\n width: '1100px',\r\n data: this.aircraftWatch.tailNumber,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result: any) => {\r\n this.aircraftWatch.customerInfoByGroupId = result;\r\n this.isJetNetOpened = false;\r\n });\r\n }\r\n\r\n getJetNetCustomerName() {\r\n if ((this.aircraftWatch?.customerInfoByGroupId == null || this.aircraftWatch?.customerInfoByGroupId == 0) && this.isJetNetIntegrationEnabled && this.aircraftWatch?.tailNumber?.startsWith(\"N\")) {\r\n try {\r\n this.jetNetService.getJetNetInformationByTailNumber(this.aircraftWatch?.tailNumber).subscribe((response: JetNet) => {\r\n if (response.aircraftresult != null) {\r\n this.hasJetNetInformation = true;\r\n this.aircraftWatch.flightDepartment = response.aircraftresult.companyrelationships[0].companyname.toUpperCase();\r\n this.hasAircraft = true;\r\n }\r\n else\r\n this.hasJetNetInformation = false;\r\n this.isLoading = false;\r\n });\r\n }\r\n catch (e) {\r\n this.hasAircraft = false;\r\n this.hasJetNetInformation = false;\r\n this.isLoading = false;\r\n }\r\n }\r\n else {\r\n this.hasAircraft = false;\r\n this.isLoading = false;\r\n this.hasJetNetInformation = false;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
 {{ aircraftWatch?.tailNumber }} 
\r\n
\r\n
\r\n

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

Company

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

{{ companyDisplayText }} 

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

FAA Registered Owner

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

{{ aircraftWatch?.faaRegisteredOwner | NullOrEmptyToDefault }} 

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

Flight Number

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

{{ aircraftWatch?.atcFlightNumber| NullOrEmptyToDefault }} 

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

Make/Model

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

{{ aircraftWatch?.aircraftMakeModel | NullOrEmptyToDefault }} 

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

On Ground

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

{{ aircraftWatch?.isAircraftOnGround | booleanToText }} 

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

Last Quote

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

{{ aircraftWatch?.lastQuote == \"\" ? \"NO PREVIOUS QUOTE AVAILABLE\" : aircraftWatch?.lastQuote }} 

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

Origin

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

{{ aircraftWatch?.origin}} 

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

Destination

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

{{ aircraftWatch?.destination == null ? \"N/A\" : aircraftWatch?.destination}} 

\r\n
\r\n
\r\n
\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 {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output,\r\n} from '@angular/core';\r\n\r\nimport { FlightWatch } from '../../../../models/flight-watch';\r\n\r\n@Component({\r\n animations: [\r\n trigger('openClose', [\r\n state(\r\n 'closed',\r\n style({\r\n width: '0px',\r\n })\r\n ),\r\n state(\r\n 'open',\r\n style({\r\n width: '200px',\r\n })\r\n ),\r\n transition('* => closed', [animate('0.2s')]),\r\n transition('* => open', [animate('0.2s')]),\r\n ]),\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'app-flight-watch-aircraft-info',\r\n styleUrls: ['./flight-watch-aircraft-info.component.scss'],\r\n templateUrl: './flight-watch-aircraft-info.component.html',\r\n})\r\nexport class FlightWatchAircraftInfoComponent {\r\n @Input() flightWatch: FlightWatch;\r\n @Output() closed = new EventEmitter();\r\n\r\n constructor() {}\r\n\r\n onClose() {\r\n this.closed.emit();\r\n }\r\n}\r\n","\r\n \r\n {{ flightWatch?.atcFlightNumber }}\r\n \r\n
\r\n Hex: {{ flightWatch?.aircraftHexCode }}\r\n
\r\n \r\n\r\n \r\n close\r\n \r\n
\r\n\r\n \r\n
\r\n Tail: {{ flightWatch?.tailNumber }}\r\n
\r\n
\r\n Type: {{ flightWatch?.aircraftTypeCode }}\r\n
\r\n
\r\n Ground Speed: {{ flightWatch?.groundSpeedKts }}\r\n
\r\n
\r\n Tracking Degree: {{ flightWatch?.trackingDegree }}\r\n
\r\n
\r\n Vertical Speed: {{ flightWatch?.verticalSpeedKts }}\r\n
\r\n
\r\n GPS Altitude: {{ flightWatch?.gpsAltitude }}\r\n
\r\n
\r\n Is on Ground:\r\n {{ flightWatch?.isAircraftOnGround ? \"Yes\" : \"No\" }}\r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { SwimFilter } from 'src/app/models/filter';\r\nimport { swimTableColumns, swimTableColumnsDisplayText } from 'src/app/models/swim';\r\nimport { GridBase } from 'src/app/services/tables/GridBase';\r\nimport { ColumnType, TableSettingsComponent } from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport { FlightWatchModelResponse } from '../../../models/flight-watch';\r\nimport { AIRCRAFT_IMAGES } from '../flight-watch-map/aircraft-images';\r\nimport { FlightWatchAircraftDataTableComponent } from './flight-watch-aircraft-data-table/flight-watch-aircraft-data-table.component';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { FlightWatchMapService } from '../flight-watch-map/flight-watch-map-services/flight-watch-map.service';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'app-flight-watch-aicraft-grid',\r\n styleUrls: ['./flight-watch-aicraft-grid.component.scss'],\r\n templateUrl: './flight-watch-aicraft-grid.component.html',\r\n})\r\nexport class FlightWatchAicraftGridComponent extends GridBase {\r\n @Input() data: FlightWatchModelResponse[];\r\n @Input() icao: string;\r\n @Input() icaoList: string[];\r\n @Input() filteredTypes: string[];\r\n @Input() showFilters: boolean = true;\r\n @Input() isLobbyView: boolean = false;\r\n @Input() selectedAircraft: FlightWatchModelResponse = null;\r\n @Input() closedAircraft: FlightWatchModelResponse = null;\r\n\r\n @Output() typesFilterChanged = new EventEmitter();\r\n @Output() filterChanged = new EventEmitter();\r\n @Output() icaoChanged = new EventEmitter();\r\n @Output() updateDrawerButtonPosition = new EventEmitter();\r\n @Output() openAircraftPopup = new EventEmitter();\r\n @Output() closeAircraftPopup = new EventEmitter();\r\n\r\n @ViewChild('arrivalsTable') public arrivalsTable: FlightWatchAircraftDataTableComponent;\r\n @ViewChild('departuresTable') public departuresTable: FlightWatchAircraftDataTableComponent;\r\n\r\n arrivals: FlightWatchModelResponse[] =[];\r\n departures: FlightWatchModelResponse[] =[];\r\n\r\n searchIcaoTxt: string;\r\n\r\n columns: ColumnType[] = [];\r\n arrivalsColumns: ColumnType[] = [];\r\n departuresColumns: ColumnType[] = [];\r\n tableLocalStorageKey: string;\r\n\r\n customers: any[] = [];\r\n\r\n chartName = 'flight-watch-aircraft-grid';\r\n\r\n constructor(private tableSettingsDialog: MatDialog,\r\n private sharedService: SharedService,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private flightWatchMapService: FlightWatchMapService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n super();\r\n }\r\n ngOnInit(): void {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.initColumns();\r\n this.getCustomersList(this.sharedService.currentUser.groupId,this.sharedService.currentUser.fboId);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.data && changes.data.currentValue) {\r\n this.setData(changes.data.currentValue);\r\n if(!changes.data.previousValue){\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n }\r\n }\r\n openPopUpAndCloseExpandedRows(tailNumber: string): void {\r\n this.openAircraftPopup.emit(tailNumber);\r\n this.expandRow(tailNumber);\r\n }\r\n expandRow(tailNumber: string): void {\r\n this.arrivalsTable.expandRow(tailNumber);\r\n this.departuresTable.expandRow(tailNumber);\r\n }\r\n collapseRow(tailNumber: string): void {\r\n let existInArrivals = this.arrivalsTable.hasRowInTable(tailNumber);\r\n let existOnDepartures = this.departuresTable.hasRowInTable(tailNumber);\r\n if(existInArrivals){\r\n this.arrivalsTable.collapseRow(tailNumber);\r\n }\r\n else if(existOnDepartures){\r\n this.departuresTable.collapseRow(tailNumber);\r\n }\r\n }\r\n collapseAllRows(): void {\r\n this.arrivalsTable.collapseAllRows();\r\n this.departuresTable.collapseAllRows();\r\n }\r\n get aircraftTypes() {\r\n return AIRCRAFT_IMAGES.filter((type) => type.label !== 'Other')\r\n .map((type) => ({\r\n aircraftType: type.id,\r\n color: type.fillColor,\r\n description: type.description,\r\n label: type.label,\r\n }))\r\n .concat({\r\n aircraftType: 'default',\r\n color: '#5fb4e6',\r\n description: '',\r\n label: 'Other',\r\n });\r\n }\r\n\r\n toggleType(type: string) {\r\n if (this.filteredTypes.includes(type)) {\r\n if (type === 'default') {\r\n this.typesFilterChanged.emit(\r\n this.filteredTypes.filter(\r\n (ft) => !['B0', 'B3', 'default'].includes(ft)\r\n )\r\n );\r\n } else {\r\n this.typesFilterChanged.emit(\r\n this.filteredTypes.filter((ft) => ft !== type)\r\n );\r\n }\r\n } else {\r\n if (type === 'default') {\r\n this.typesFilterChanged.emit([\r\n ...this.filteredTypes,\r\n 'B0',\r\n 'B3',\r\n 'default',\r\n ]);\r\n } else {\r\n this.typesFilterChanged.emit([...this.filteredTypes, type]);\r\n }\r\n }\r\n }\r\n updateIcao(event: any ){\r\n this.arrivals = null;\r\n this.departures = null;\r\n this.updateDrawerButtonPosition.emit();\r\n this.icaoChanged.emit(event);\r\n }\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.columns = [...result]\r\n this.updateDrawerButtonPosition.emit();\r\n this.saveSettings();\r\n this.departuresTable.updateColumns(this.getFilteredDefaultColumns(false, this.isLobbyView,this.columns));\r\n this.arrivalsTable.updateColumns(this.getFilteredDefaultColumns(true, this.isLobbyView,this.columns));\r\n this.arrivalsTable.refreshSort();\r\n this.departuresTable.refreshSort();\r\n });\r\n }\r\n initColumns() {\r\n this.tableLocalStorageKey = (this.isLobbyView) ? `lobby-settings-${this.sharedService.currentUser.fboId}` : `flight-watch-settings-${this.sharedService.currentUser.fboId}`;\r\n\r\n this.columns = this.getClientSavedColumns(this.tableLocalStorageKey, this.getSettingsColumnDefinition());\r\n\r\n this.arrivalsColumns = this.getFilteredDefaultColumns(true, this.isLobbyView,this.columns);\r\n this.departuresColumns = this.getFilteredDefaultColumns(false, this.isLobbyView,this.columns);\r\n }\r\n private getSettingsColumnDefinition(): ColumnType[]{\r\n let cols = [];\r\n if(this.isLobbyView){\r\n cols = [...new Set(this.lobbyArrivalCols.concat(this.lobbyDeparturesCols))]\r\n }\r\n else{\r\n cols = [...new Set(this.defaultArrivalCols.concat(this.defaultDeparturesCols))]\r\n }\r\n return this.tableColumns?.filter((column) => { return cols.includes(column.id) }) || [];\r\n\r\n }\r\n private getFilteredDefaultColumns(isArrival: boolean, isLobbyView, columns: ColumnType[]) : ColumnType[]{\r\n if(isLobbyView){\r\n if(isArrival){\r\n return columns?.filter((column) => { return this.lobbyArrivalCols.includes(column.id) }) || [];\r\n }else{\r\n return columns?.filter((column) => { return this.lobbyDeparturesCols.includes(column.id) }) || [];\r\n }\r\n }\r\n\r\n if(isArrival){\r\n return columns?.filter((column) => { return this.defaultArrivalCols.includes(column.id) }) || [];\r\n }else{\r\n return columns?.filter((column) => { return this.defaultDeparturesCols.includes(column.id)}) || [];\r\n }\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n sortChangeSaveSettings(){\r\n this.saveSettings();\r\n }\r\n\r\n getCustomersList(groupId,fboId) {\r\n this.customerInfoByGroupService\r\n .getCustomersListByGroupAndFbo(\r\n groupId,\r\n fboId\r\n )\r\n .subscribe((customers: any[]) => {\r\n this.customers = customers;\r\n });\r\n }\r\n\r\n setData(data: FlightWatchModelResponse[]): void {\r\n this.arrivals = this.flightWatchMapService.filterArrivals(data);\r\n this.departures = this.flightWatchMapService.filterDepatures(data);\r\n }\r\n\r\n arrivalsDeparturesCommonCols: string[]= [swimTableColumns.status,swimTableColumns.tailNumber,swimTableColumns.flightDepartment,swimTableColumns.icaoAircraftCode,swimTableColumns.ete,swimTableColumns.isAircraftOnGround,swimTableColumns.itpMarginTemplate];\r\n\r\n defaultArrivalCols = [swimTableColumns.etaLocal,swimTableColumns.originAirport].concat(this.arrivalsDeparturesCommonCols);\r\n\r\n defaultDeparturesCols = [swimTableColumns.atdLocal,swimTableColumns.destinationAirport].concat(this.arrivalsDeparturesCommonCols);\r\n\r\n arrivalsDeparturesLobbyCommonCols: string[] = [swimTableColumns.status,swimTableColumns.tailNumber,swimTableColumns.makeModel,swimTableColumns.isAircraftOnGround,swimTableColumns.flightDepartment,swimTableColumns.icaoAircraftCode];\r\n\r\n lobbyArrivalCols= [swimTableColumns.etaLocal,swimTableColumns.originAirport,swimTableColumns.originCity].concat(this.arrivalsDeparturesLobbyCommonCols);\r\n\r\n lobbyDeparturesCols = [swimTableColumns.atdLocal,swimTableColumns.destinationAirport,swimTableColumns.destinationCity,swimTableColumns.isAircraftOnGround].concat(this.arrivalsDeparturesLobbyCommonCols);\r\n\r\n tableColumns :ColumnType[]= [\r\n {\r\n id: swimTableColumns.status,\r\n name: swimTableColumnsDisplayText[swimTableColumns.status],\r\n },\r\n {\r\n id: swimTableColumns.tailNumber,\r\n name: swimTableColumnsDisplayText[swimTableColumns.tailNumber],\r\n },\r\n {\r\n id: swimTableColumns.flightDepartment,\r\n name: swimTableColumnsDisplayText[swimTableColumns.flightDepartment],\r\n sort: 'desc',\r\n },\r\n {\r\n id: swimTableColumns.icaoAircraftCode,\r\n name: swimTableColumnsDisplayText[swimTableColumns.icaoAircraftCode],\r\n },\r\n {\r\n id: swimTableColumns.ete,\r\n name: swimTableColumnsDisplayText[swimTableColumns.ete],\r\n },\r\n {\r\n id: swimTableColumns.atdLocal,\r\n name: swimTableColumnsDisplayText[swimTableColumns.atdLocal],\r\n },\r\n {\r\n id: swimTableColumns.etaLocal,\r\n name: swimTableColumnsDisplayText[swimTableColumns.etaLocal],\r\n },\r\n {\r\n id: swimTableColumns.originAirport,\r\n name: swimTableColumnsDisplayText[swimTableColumns.originAirport],\r\n },\r\n {\r\n id: swimTableColumns.originCity,\r\n name: swimTableColumnsDisplayText[swimTableColumns.originCity],\r\n },\r\n {\r\n id: swimTableColumns.destinationAirport,\r\n name: swimTableColumnsDisplayText[swimTableColumns.destinationAirport],\r\n },\r\n {\r\n id: swimTableColumns.destinationCity,\r\n name: swimTableColumnsDisplayText[swimTableColumns.destinationCity],\r\n },\r\n {\r\n id: swimTableColumns.makeModel,\r\n name: swimTableColumnsDisplayText[swimTableColumns.makeModel],\r\n },\r\n {\r\n id: swimTableColumns.isAircraftOnGround,\r\n name: swimTableColumnsDisplayText[swimTableColumns.isAircraftOnGround],\r\n },\r\n {\r\n id: swimTableColumns.itpMarginTemplate,\r\n name: swimTableColumnsDisplayText[swimTableColumns.itpMarginTemplate],\r\n }\r\n ];\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \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, Input, OnInit } from '@angular/core';\r\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { FlightWatchHelper } from '../../../FlightWatchHelper.service';\r\nimport { Swim } from 'src/app/models/swim';\r\n\r\n@Component({\r\n selector: 'app-aicraft-expanded-detail',\r\n templateUrl: './aicraft-expanded-detail.component.html',\r\n styleUrls: ['./aicraft-expanded-detail.component.scss']\r\n})\r\nexport class AicraftExpandedDetailComponent implements OnInit {\r\n @Input() data: FlightWatchModelResponse | any;\r\n @Input() isArrival: boolean;\r\n @Input() icao: string;\r\n @Input() fbo: string;\r\n\r\n constructor(private flightWatchHelper: FlightWatchHelper) { }\r\n\r\n ngOnInit() {\r\n }\r\n getOriginCityLabel(){\r\n return this.isArrival\r\n ? \"Origin City\"\r\n : \"Destination City\";\r\n }\r\n getPastArrivalsValue(row: FlightWatchModelResponse): number{\r\n return this.isArrival\r\n ? row.arrivals\r\n : row.departures;\r\n }\r\n getMakeModelDisplayString(element: FlightWatchModelResponse){\r\n if(element === null || element === undefined) return \"TBD\"\r\n let makemodelstr = (element.make) ?\r\n this.flightWatchHelper.getSlashSeparationDisplayString(element.make,element.model) :\r\n this.flightWatchHelper.getSlashSeparationDisplayString(element.faaMake,element.faaModel);\r\n\r\n return this.flightWatchHelper.getEmptyorDefaultStringText(makemodelstr);\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Make/Model:\r\n {{ getMakeModelDisplayString(data) }}\r\n Altitude: {{ data?.altitude }}\r\n ETA:\r\n {{ data?.etaZulu | getTime }}\r\n \r\n {{ getOriginCityLabel() }}:\r\n {{ data?.city }}\r\n
\r\n Visit to {{ fbo }} (30 days):\r\n {{ data?.visitsToMyFBO }}\r\n \r\n Past Arrivals at\r\n {{ icao }} (30 days):\r\n {{ getPastArrivalsValue(data) }}\r\n \r\n ATD:\r\n {{ data?.atdZulu | getTime }}\r\n \r\n FAA Registered Owner:\r\n {{ data?.faaRegisteredOwner }}\r\n
\r\n Fuel Capacity (gal):\r\n {{ data?.fuelCapacityGal }}\r\n FuelerLinx ID: {{ data?.fuelerlinxID }}\r\n Transaction Status:\r\n {{ data?.transactionStatus }}\r\n {{ data?.phone }}
\r\n
\r\n","import { state, style, trigger } from '@angular/animations';\r\nimport { ChangeDetectorRef, OnInit, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { MatSort, MatSortHeader, Sort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { stautsIcons, stautsTextColor, Swim, swimTableColumns, swimTableColumnsDisplayText, tailNumberTextColor } from 'src/app/models/swim';\r\nimport {\r\n ColumnType,\r\n} from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport { BooleanToTextPipe } from 'src/app/shared/pipes/boolean/booleanToText.pipe';\r\nimport { GetTimePipe } from 'src/app/shared/pipes/dateTime/getTime.pipe';\r\nimport { ToReadableTimePipe } from 'src/app/shared/pipes/time/ToReadableTime.pipe';\r\nimport { FlightWatchHelper } from \"../../FlightWatchHelper.service\";\r\nimport { FlightLegStatus } from \"../../../../enums/flight-watch.enum\";\r\nimport { CallbackComponent } from 'src/app/shared/components/favorite-icon/favorite-icon.component';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\nimport { FlightWatchMapSharedService } from '../../services/flight-watch-map-shared.service';\r\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-flight-watch-aircraft-data-table',\r\n templateUrl: './flight-watch-aircraft-data-table.component.html',\r\n styleUrls: ['./flight-watch-aircraft-data-table.component.scss'],\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed, void', style({ height: '0px', minHeight: '0', display: 'none' })),\r\n state('expanded', style({ height: '*' }))\r\n ])\r\n ],\r\n providers: [GetTimePipe,ToReadableTimePipe,BooleanToTextPipe]\r\n})\r\nexport class FlightWatchAircraftDataTableComponent implements OnInit {\r\n @Input() data: Swim[];\r\n @Input() isArrival: boolean;\r\n @Input() columns: ColumnType[];\r\n @Input() isLobbyView: boolean = false;\r\n @Input() customers: any[] = [];\r\n\r\n @Output() openAircraftPopup = new EventEmitter();\r\n @Output() closeAircraftPopup = new EventEmitter();\r\n\r\n @Output() saveSettings = new EventEmitter();\r\n\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n expandedDetailData: FlightWatchModelResponse | Swim | null;\r\n\r\n allColumnsToDisplay: string[];\r\n dataColumnsToDisplay: string[];\r\n columnsToDisplayDic = new Object();\r\n\r\n columnsToDisplayWithExpand : any[];\r\n expandedElement: any | null;\r\n\r\n fboId: number;\r\n fbo: string;\r\n icao: string\r\n\r\n hasChangeDefaultSort = false;\r\n\r\n aicraftDetailsSubscription: Subscription;\r\n sortChangeSubscription: Subscription;\r\n constructor(private getTime : GetTimePipe,\r\n private toReadableTime: ToReadableTimePipe,\r\n private sharedService: SharedService,\r\n private booleanToText: BooleanToTextPipe,\r\n private flightWatchHelper: FlightWatchHelper,\r\n private flightWatchMapSharedService: FlightWatchMapSharedService,\r\n private cdr: ChangeDetectorRef) {\r\n this.aicraftDetailsSubscription = this.flightWatchMapSharedService.aicraftDetails$.subscribe( (data: FlightWatchModelResponse) => {\r\n this.expandedDetailData = data;\r\n });\r\n this.dataSource.sort = this.sort;\r\n }\r\n\r\n ngOnInit() {\r\n this.fbo = localStorage.getItem('fbo');\r\n this.fboId = this.sharedService.currentUser.fboId;\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n ngOnDestroy(){\r\n this.aicraftDetailsSubscription?.unsubscribe();\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n ngAfterViewInit() {\r\n this.intializeDataSource(this.data);\r\n this.sortChangeSubscription = this.sort?.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n this.saveSettings.emit();\r\n });\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if(changes.columns){\r\n this.allColumnsToDisplay = this.getVisibleColumns();\r\n this.dataColumnsToDisplay = this.getVisibleDataColumns();\r\n }\r\n if (changes.data){\r\n if(this.hasChangeDefaultSort){\r\n this.dataSource.data = changes.data.currentValue;\r\n return;\r\n }\r\n\r\n this.intializeDataSource(changes.data.currentValue);\r\n }\r\n if(changes.selectedAircraft?.currentValue?.tailNumber){\r\n this.expandedElement = changes.selectedAircraft.currentValue.tailNumber;\r\n }\r\n }\r\n intializeDataSource(data: Swim[]){\r\n if(this.isArrival){\r\n this.dataSource = new MatTableDataSource(data?.sort((a, b) => { return this.compare(b.etaLocal, a.etaLocal, false); }));\r\n }else{\r\n this.dataSource = new MatTableDataSource(this.setManualSortOnDepartures(data));\r\n }\r\n }\r\n updateColumns(columns: ColumnType[]): void{\r\n this.columns = columns;\r\n this.allColumnsToDisplay = this.getVisibleColumns();\r\n this.dataColumnsToDisplay = this.getVisibleDataColumns();\r\n }\r\n setManualSortOnDepartures(data: Swim[]){\r\n var taxiing = data?.filter((row) => { return FlightLegStatus.TaxiingDestination == row.status || FlightLegStatus.TaxiingOrigin == row.status; }) || [];\r\n taxiing = taxiing.sort((a, b) => { return this.compare(b.atdLocal, a.atdLocal, false); });\r\n\r\n var departing = data?.filter((row) => { return FlightLegStatus.Departing == row.status }) || [];\r\n departing = departing.sort((a, b) => { return this.compare(b.atdLocal, a.atdLocal, false); });\r\n\r\n var enRoute = data?.filter((row) => { return FlightLegStatus.EnRoute == row.status; }) || [];\r\n enRoute = enRoute.sort((a, b) => { return this.compare(b.atdLocal, a.atdLocal, false); });\r\n\r\n var result = (taxiing.concat(departing)).concat(enRoute);\r\n return result;\r\n }\r\n getVisibleDataColumns() {\r\n return this.columns\r\n .filter((column) => {\r\n if(column.hidden) return false;\r\n return true;\r\n })\r\n .map((column) => column.id) || [];\r\n }\r\n getVisibleColumns() {\r\n var result = ['expand-icon'];\r\n result.push(...\r\n this.getVisibleDataColumns()\r\n );\r\n\r\n return result;\r\n }\r\n refreshSort() {\r\n this.hasChangeDefaultSort= true;\r\n let sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.name,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.name) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n getSwimDataTypeString(){\r\n return (this.isArrival)? 'Arrivals': 'Departures';\r\n }\r\n\r\n getColumnData(row: Swim, column:string){\r\n switch(column){\r\n case \"expandedDetail\" :\r\n return;\r\n case swimTableColumns.makeModel:\r\n return this.getMakeModelDisplayString(row);\r\n case swimTableColumns.etaLocal:\r\n return this.getTime.transform(row.etaLocal,defaultStringsEnum.tbd);\r\n case swimTableColumns.atdLocal:\r\n return this.getTime.transform(row.atdLocal,defaultStringsEnum.tbd);\r\n case swimTableColumns.ete:\r\n return this.toReadableTime.transform(row.ete,defaultStringsEnum.tbd);\r\n case swimTableColumns.isAircraftOnGround:\r\n return this.booleanToText.transform(row.isAircraftOnGround);\r\n case swimTableColumns.status:\r\n row.statusDisplayString = FlightLegStatus[row.status];\r\n return row.statusDisplayString;\r\n case swimTableColumns.flightDepartment:\r\n return row.flightDepartment ?? row.faaRegisteredOwner;\r\n case swimTableColumns.icaoAircraftCode:\r\n return this.getMakeModelDisplayString(row);\r\n\r\n default:\r\n let col = this.columns.find( c => {\r\n return c.id == column\r\n });\r\n return row[col.id];\r\n }\r\n }\r\n getColumnDisplayString(column:string){\r\n return swimTableColumnsDisplayText[column];\r\n }\r\n getMakeModelDisplayString(element: Swim){\r\n let makemodelstr = (element.make) ?\r\n this.flightWatchHelper.getSlashSeparationDisplayString(element.make,element.model) :\r\n this.flightWatchHelper.getSlashSeparationDisplayString(element.fAAMake,element.fAAModel);\r\n\r\n return this.flightWatchHelper.getEmptyorDefaultStringText(makemodelstr);\r\n }\r\n getTextColor(row: Swim, column:string){\r\n if(column == swimTableColumns.tailNumber)\r\n return this.getTailNumberTextColor(row);\r\n\r\n if(column == swimTableColumns.status){\r\n return stautsTextColor[FlightLegStatus[row.status]];\r\n }\r\n return stautsTextColor.default;\r\n }\r\n hasIcon(column:string): boolean{\r\n return column == swimTableColumns.status;\r\n }\r\n getIcon(row: Swim): string{\r\n return stautsIcons[FlightLegStatus[row.status]];\r\n }\r\n getTailNumberTextColor(row: Swim) {\r\n if (row.isActiveFuelRelease) return tailNumberTextColor.activeFuelRelease;\r\n if (row.isFuelerLinxClient) return tailNumberTextColor.fuelerLinx;\r\n if (row.isInNetwork) return tailNumberTextColor.inNetwork;\r\n\r\n return tailNumberTextColor.outOfNetwork;\r\n }\r\n sortData(sort: Sort){\r\n this.hasChangeDefaultSort = true;\r\n this.dataSource.data.sort((a, b) => {\r\n const isAsc = sort.direction === 'asc';\r\n switch (sort.active) {\r\n case swimTableColumns.status:\r\n return this.compare(a.status, b.status, isAsc);\r\n case swimTableColumns.tailNumber:\r\n return this.compare(a.tailNumber, b.tailNumber, isAsc);\r\n case swimTableColumns.flightDepartment:\r\n return this.compare(a.flightDepartment, b.flightDepartment, isAsc);\r\n case swimTableColumns.icaoAircraftCode:\r\n return this.compare(a.icaoAircraftCode, b.icaoAircraftCode, isAsc);\r\n case swimTableColumns.ete:\r\n return this.compare(a.ete, b.ete, isAsc);\r\n case swimTableColumns.etaLocal:\r\n return this.compare(a.etaLocal, b.etaLocal, isAsc);\r\n case swimTableColumns.atdLocal:\r\n return this.compare(a.atdLocal, b.atdLocal, isAsc);\r\n case swimTableColumns.originAirport:\r\n return this.compare(a.origin, b.origin, isAsc);\r\n case swimTableColumns.destinationAirport:\r\n return this.compare(a.arrivalICAO, b.arrivalICAO, isAsc);\r\n case swimTableColumns.isAircraftOnGround:\r\n return this.compare(a.isAircraftOnGround, b.isAircraftOnGround, isAsc);\r\n case swimTableColumns.itpMarginTemplate:\r\n return this.compare(a.itpMarginTemplate, b.itpMarginTemplate, isAsc);\r\n default:\r\n return 0;\r\n }\r\n });\r\n }\r\n compare(a: number | string , b: number | string, isAsc: boolean): number{\r\n var result = (a < b ? -1 : 1) * (isAsc ? 1 : -1);\r\n return result;\r\n }\r\n getNoDataToDisplayString(){\r\n return (this.isArrival) ? \"No upcoming arrivals\": \"No upcoming departures\";\r\n }\r\n isFavoriteButtonVisible(column: any): boolean {\r\n return column == swimTableColumns.status && !this.isLobbyView;\r\n }\r\n setIsFavoriteProperty(aircraft: any): any {\r\n aircraft.isFavorite = aircraft.favoriteAircraft != null;\r\n return aircraft;\r\n }\r\n get getCallBackComponent(): CallbackComponent{\r\n return CallbackComponent.aircraft;\r\n }\r\n onRowrowClick(element: Swim) {\r\n this.flightWatchMapSharedService.getAndUpdateAircraftWithHistorical(this.fboId, this.icao, element);\r\n this.expandedDetailData = element;\r\n\r\n if(this.expandedElement != element.tailNumber)\r\n this.closeAircraftPopup.emit(this.expandedElement);\r\n\r\n this.expandedElement = this.expandedElement === element.tailNumber ? null : element.tailNumber\r\n\r\n if(this.expandedElement == null)\r\n this.closeAircraftPopup.emit(element.tailNumber);\r\n else\r\n this.openAircraftPopup.emit(this.expandedElement);\r\n }\r\n hasRowInTable(tailNumber: string): boolean{\r\n return this.data.find(x => x.tailNumber == tailNumber) ? true : false;\r\n }\r\n expandRow(tailNumber: string): void {\r\n if(this.hasRowInTable(tailNumber)){\r\n this.expandedElement = tailNumber;\r\n const selectedRow = document.getElementById(tailNumber);\r\n selectedRow.scrollIntoView({block: 'center', behavior: 'smooth'});\r\n }\r\n else{\r\n this.expandedElement = null;\r\n }\r\n\r\n this.cdr.detectChanges();\r\n }\r\n collapseRow(tailNumber: string): void {\r\n if(!tailNumber)\r\n this.expandedElement = null;\r\n\r\n if(this.expandedElement == tailNumber)\r\n this.expandedElement = null;\r\n\r\n this.cdr.detectChanges();\r\n }\r\n collapseAllRows(): void {\r\n this.expandedElement = null;\r\n this.cdr.detectChanges();\r\n }\r\n}\r\n\r\n","
\r\n

{{ getSwimDataTypeString() }}

\r\n
\r\n
\r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n keyboard_arrow_down\r\n keyboard_arrow_up\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ getColumnDisplayString(column) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {{ getIcon(element) }}\r\n \r\n {{ getColumnData(element, column) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ getNoDataToDisplayString() }}\r\n \r\n \r\n \r\n
\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges, ViewChild } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\n\r\n@Component({\r\n selector: 'app-flight-watch-filters',\r\n templateUrl: './flight-watch-filters.component.html',\r\n styleUrls: ['./flight-watch-filters.component.scss'],\r\n})\r\n\r\nexport class FlightWatchFiltersComponent implements OnInit {\r\n @Input() icao: string;\r\n @Input() icaoList: string[];\r\n @Input() isSearchAirportHidden: boolean = false;\r\n @Input() isSearchAicraftHidden: boolean = false;\r\n\r\n @Output() icaoChanged = new EventEmitter();\r\n @Output() updateDrawerButtonPosition = new EventEmitter();\r\n @Output() textFilterChanged = new EventEmitter();\r\n\r\n @ViewChild('input') input: ElementRef;\r\n\r\n myControl = new FormControl({value: '', disabled: true});\r\n filteredOptions: string[];\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.icaoList?.currentValue){\r\n this.filteredOptions = changes.icaoList.currentValue.slice();\r\n this.myControl.enable();\r\n }\r\n if(changes.icao?.currentValue)\r\n this.myControl.patchValue(changes.icao.currentValue);\r\n }\r\n\r\n updateIcao(icao: string ): void {\r\n this.updateDrawerButtonPosition.emit();\r\n this.icaoChanged.emit(icao);\r\n }\r\n applyFilter(event: Event) {\r\n let filterText: string = (event.target as HTMLInputElement).value;\r\n this.textFilterChanged.emit(filterText);\r\n }\r\n filter(): void {\r\n const filterValue = this.myControl.value.toLowerCase();\r\n this.filteredOptions = this.icaoList.filter(o => o.toLowerCase().includes(filterValue));\r\n }\r\n validateTypedValue(): void {\r\n const filterValue = this.myControl.value.toUpperCase();\r\n if(!this.icaoList.includes(filterValue))\r\n this.myControl.patchValue(this.icao);\r\n else\r\n this.updateIcao(filterValue);\r\n }\r\n loadAllAirports(): void {\r\n this.filteredOptions = this.icaoList;\r\n }\r\n onOptionSelected(event: MatAutocompleteSelectedEvent): void {\r\n const selectedValue = event.option.viewValue;\r\n this.updateIcao(selectedValue);\r\n }\r\n}\r\n","
\r\n \r\n Select Airport\r\n \r\n \r\n \r\n {{option}}\r\n \r\n \r\n \r\n \r\n Search Aircraft\r\n search\r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Dictionary } from 'lodash';\r\nimport { AcukwikAirport } from 'src/app/models/AcukwikAirport';\r\nimport { Aircraftwatch, FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { isCommercialAircraft } from 'src/utils/aircraft';\r\nimport { FlightWatchMapService } from '../flight-watch-map/flight-watch-map-services/flight-watch-map.service';\r\nimport { FlightWatchMapComponent } from '../flight-watch-map/flight-watch-map.component';\r\nimport { FlightWatchMapSharedService } from '../services/flight-watch-map-shared.service';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport * as SharedEvents from 'src/app/constants/sharedEvents';\r\nimport { Subscription } from 'rxjs';\r\n\r\ntype LayerType = 'airway' | 'streetview' | 'icao' | 'taxiway';\r\n\r\n@Component({\r\n selector: 'app-flight-watch-map-wrapper',\r\n templateUrl: './flight-watch-map-wrapper.component.html',\r\n styleUrls: ['./flight-watch-map-wrapper.component.scss'],\r\n})\r\nexport class FlightWatchMapWrapperComponent implements OnInit {\r\n @Input() center: mapboxgl.LngLatLike;\r\n @Input() data: FlightWatchModelResponse[];\r\n @Input() isStable: boolean;\r\n @Input() icao: string;\r\n @Input() icaoList: string[];\r\n @Input() showFilters: boolean = true;\r\n\r\n @Output() setIcaoList = new EventEmitter();\r\n\r\n @Output() updateDrawerButtonPosition = new EventEmitter();\r\n @Output() textFilterChanged = new EventEmitter();\r\n @Output() icaoChanged = new EventEmitter();\r\n @Output() showCommercialAircraftFilter = new EventEmitter();\r\n @Output() aicraftClick = new EventEmitter();\r\n @Output() popUpClosed = new EventEmitter();\r\n\r\n\r\n @ViewChild('map') map: FlightWatchMapComponent;\r\n\r\n public showLayers: boolean = false;\r\n public isCommercialVisible = true;\r\n public isShowAirportCodesEnabled = true;\r\n public isShowTaxiwaysEnabled = true;\r\n public flightWatchDictionary: Dictionary;\r\n public lastUpdatedData: FlightWatchModelResponse[];\r\n public selectedPopUp: FlightWatchModelResponse;\r\n\r\n public chartName = 'map-wrapper';\r\n\r\n aicraftDetailsSubscription: Subscription;\r\n aicraftCompanyAssignSubscription: Subscription;\r\n\r\n constructor(private flightWatchMapService: FlightWatchMapService,\r\n flightWatchMapSharedService: FlightWatchMapSharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private sharedService: SharedService,) {\r\n this.aicraftDetailsSubscription = flightWatchMapSharedService.aicraftDetails$.subscribe( (data: FlightWatchModelResponse) => {\r\n this.updatePopUpData(data);\r\n });\r\n this.aicraftCompanyAssignSubscription = flightWatchMapSharedService.aicraftCompanyAssign$.subscribe( (data: Aircraftwatch) => {\r\n this.updateAircraftCompanyAssignData(data);\r\n });\r\n this.sharedService.valueChange(SharedEvents.locationChangedEvent);\r\n }\r\n\r\n ngOnInit() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n }\r\n ngOnDestroy() {\r\n this.aicraftDetailsSubscription?.unsubscribe();\r\n this.aicraftCompanyAssignSubscription?.unsubscribe();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!changes.data && !changes.data?.currentValue)\r\n return;\r\n\r\n if(!changes.data.firstChange){\r\n this.processFlightWatchData(changes.data.currentValue,changes.data.previousValue);\r\n }\r\n this.lastUpdatedData = changes.data.currentValue;\r\n\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n private processFlightWatchData(currentFlights: FlightWatchModelResponse [], previousFlights: FlightWatchModelResponse [] = []):void {\r\n for (let currentData of currentFlights) {\r\n let previousData = previousFlights?.find((obj) => obj.tailNumber == currentData.tailNumber);\r\n\r\n currentData.previousAircraftPositionDateTimeUtc = previousData?.aircraftPositionDateTimeUtc;\r\n\r\n let isDateTimeSyncronized = (currentData.aircraftPositionDateTimeUtc > currentData.previousAircraftPositionDateTimeUtc);\r\n\r\n currentData.previousLongitude = isDateTimeSyncronized ? previousData?.longitude ?? currentData.longitude : currentData.longitude;\r\n currentData.previousLatitude = isDateTimeSyncronized ? previousData?.latitude ?? currentData.latitude : currentData.latitude;\r\n\r\n }\r\n }\r\n getLatestData($event: any = null){\r\n this.flightWatchDictionary = this.getFilteredData(this.lastUpdatedData);\r\n }\r\n getFilteredData(\r\n data: FlightWatchModelResponse[]\r\n ): Dictionary {\r\n let filtered = this.filterComercialFlights(data);\r\n return this.flightWatchMapService.getDictionaryByTailNumberAsKey(filtered);\r\n }\r\n filterComercialFlights(\r\n flightWatch: FlightWatchModelResponse[]\r\n ): FlightWatchModelResponse[] {\r\n if (this.isCommercialVisible) return flightWatch;\r\n\r\n return flightWatch.filter(\r\n (flightWatch) => !isCommercialAircraft(flightWatch.atcFlightNumber)\r\n );\r\n }\r\n toggleCommercial(event: MouseEvent) {\r\n this.isCommercialVisible = !this.isCommercialVisible;\r\n this.flightWatchDictionary = this.getFilteredData(this.data);\r\n this.showCommercialAircraftFilter.emit(this.isCommercialVisible);\r\n }\r\n toggleLayer(type: LayerType) {\r\n this.map.toggleLayer(type);\r\n if (type == 'icao')\r\n this.isShowAirportCodesEnabled = !this.isShowAirportCodesEnabled;\r\n else if (type == 'taxiway')\r\n this.isShowTaxiwaysEnabled = !this.isShowTaxiwaysEnabled;\r\n }\r\n resizeMap(isopen: boolean) {\r\n this.map.resizeMap(isopen);\r\n }\r\n updatePopUpData($event: FlightWatchModelResponse) {\r\n this.selectedPopUp = $event;\r\n }\r\n updateAircraftCompanyAssignData(aicarftWatch: Aircraftwatch){\r\n this.map.updateAircraft(aicarftWatch);\r\n this.map.setPopUpData(aicarftWatch);\r\n this.map.openAircraftPopUpByTailNumber(aicarftWatch.tailNumber);\r\n }\r\n}\r\n","\r\n\r\n
\r\n \r\n layers\r\n \r\n
\r\n
\r\n \r\n \r\n
Layout Settings
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
App Layout
\r\n
\r\n \r\n Show Commercial Aircraft\r\n
\r\n
\r\n ON\r\n \r\n OFF\r\n
\r\n
\r\n
\r\n \r\n Show Airport Identifier\r\n
\r\n
\r\n ON\r\n \r\n OFF\r\n
\r\n \r\n
\r\n \r\n Show Taxiways\r\n
\r\n
\r\n ON\r\n \r\n OFF\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n\r\n","export const AircraftIconSize = 22;\r\nexport const AircraftIconScale = 1.5;\r\n\r\nexport interface AircraftImageData {\r\n blueReverseUrl: string,\r\n blueUrl: string,\r\n fuelerlinxUrl: string,\r\n fuelerlinxReverseUrl: string,\r\n description: string,\r\n fillColor: string,\r\n id: string,\r\n label: string,\r\n reverseUrl: string,\r\n size: number,\r\n url: string,\r\n}\r\nexport const AIRCRAFT_IMAGES: AircraftImageData[]= [\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/default-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/default-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/default-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/default-FUELERLINX-reverse.svg',\r\n description: 'Unspecified Powered Aircraft',\r\n fillColor: '#3daf2c',\r\n id: 'A0',\r\n label: 'Unspecified',\r\n reverseUrl: '/assets/img/map-markers/default-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/default.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/A1-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/A1-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/A1-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/A1-FUELERLINX-reverse.svg',\r\n description: 'Less than 15.5k lbs',\r\n fillColor: '#737373',\r\n id: 'A1',\r\n label: 'Light Jet',\r\n reverseUrl: '/assets/img/map-markers/A1-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/A1.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/A2-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/A2-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/A2-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/A2-FUELERLINX-reverse.svg',\r\n description: '15.k to 75k lbs',\r\n fillColor: '#dabe0e',\r\n id: 'A2',\r\n label: 'Small Jet',\r\n reverseUrl: '/assets/img/map-markers/A2-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/A2.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/A3-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/A3-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/A3-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/A3-FUELERLINX-reverse.svg',\r\n description: '75k to 300k lbs',\r\n fillColor: '#f7e600',\r\n id: 'A3',\r\n label: 'Large Jet',\r\n reverseUrl: '/assets/img/map-markers/A3-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/A3.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/A4-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/A4-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/A4-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/A4-FUELERLINX-reverse.svg',\r\n description: 'High Vortex, Large',\r\n fillColor: '#ad36f2',\r\n id: 'A4',\r\n label: 'HVL Jet',\r\n reverseUrl: '/assets/img/map-markers/A4-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/A4.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/A5-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/A5-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/A5-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/A5-FUELERLINX-reverse.svg',\r\n description: 'Greater than 300k lbs',\r\n fillColor: '#ed4077',\r\n id: 'A5',\r\n label: 'Heavy Jet',\r\n reverseUrl: '/assets/img/map-markers/A5-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/A5.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/A7-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/A7-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/A7-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/A7-FUELERLINX-reverse.svg',\r\n description: '',\r\n fillColor: '#ffffff',\r\n id: 'A7',\r\n label: 'Helicopter',\r\n reverseUrl: '/assets/img/map-markers/A7-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/A7.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/default-release-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/default-release.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/default-FUELERLINX.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/default-FUELERLINX-reverse.svg',\r\n description: '',\r\n fillColor: '#2b62ae',\r\n id: 'default',\r\n label: 'Other',\r\n reverseUrl: '/assets/img/map-markers/default-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/default.svg',\r\n },\r\n {\r\n blueReverseUrl: '/assets/img/map-markers/airplane-CLIENT-reverse.svg',\r\n blueUrl: '/assets/img/map-markers/airplane-CLIENT.svg',\r\n fuelerlinxUrl: '/assets/img/map-markers/airplane-CLIENT.svg',\r\n fuelerlinxReverseUrl: '/assets/img/map-markers/airplane-CLIENT-reverse.svg',\r\n description: '',\r\n fillColor: '#2b62ae',\r\n id: 'client',\r\n label: 'Other',\r\n reverseUrl: '/assets/img/map-markers/airplane-CLIENT-reverse.svg',\r\n size: 65,\r\n url: '/assets/img/map-markers/airplane-CLIENT.svg',\r\n }\r\n];\r\n","import { Injectable } from '@angular/core';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { FlightWatchMapService } from './flight-watch-map.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AircraftFlightWatchService {\r\n\r\nconstructor(private flightWatchMapService : FlightWatchMapService) { }\r\n\r\n public getAricraftIcon(isSelectedAircraft: boolean,data: FlightWatchModelResponse): string {\r\n let icon = `aircraft_image_${this.flightWatchMapService.getDefaultAircraftType(\r\n data\r\n )}`;\r\n\r\n icon += `${isSelectedAircraft ? '_reversed' : ''}${\r\n data.isActiveFuelRelease\r\n ? '_release'\r\n : data.isFuelerLinxClient\r\n ? '_fuelerlinx'\r\n : ''\r\n }`;\r\n return icon;\r\n }\r\n public getFlightFeatureJsonData(data: FlightWatchModelResponse): GeoJSON.Feature {\r\n let icon = this.getAricraftIcon(false,data);\r\n\r\n return {\r\n geometry: {\r\n coordinates: [data.previousLongitude, data.previousLatitude],\r\n type: 'Point',\r\n },\r\n properties: {\r\n 'origin-coordinates': [data.previousLongitude, data.previousLatitude],\r\n 'destination-coordinates': [data.longitude, data.latitude],\r\n id: data.tailNumber,\r\n 'default-icon-image': icon,\r\n 'bearing': data.trackingDegree,\r\n 'size': 0.5,\r\n 'status': data.status,\r\n },\r\n id: data.tailNumber,\r\n type: 'Feature'\r\n };\r\n }\r\n public getFlightLayerJsonData(\r\n layerId: string,\r\n flightSourceId: any\r\n ): mapboxgl.AnyLayer {\r\n\r\n let json : mapboxgl.AnyLayer = {\r\n id : layerId,\r\n layout: {\r\n 'icon-allow-overlap': true,\r\n 'icon-image':['get', 'default-icon-image'],\r\n 'icon-rotate': ['get', 'bearing'],\r\n 'icon-size': ['get', 'size'],\r\n 'symbol-z-order': 'source'\r\n },\r\n source: flightSourceId,\r\n type: 'symbol',\r\n\r\n };\r\n\r\n return json;\r\n\r\n }\r\n public getAirportLayerJsonData(\r\n layerId: string,\r\n airportSourceId: any,\r\n ): mapboxgl.AnyLayer {\r\n return {\r\n id : layerId,\r\n layout: {\r\n 'icon-allow-overlap': true,\r\n 'icon-image': ['get', 'icon-image'],\r\n 'icon-size': ['get', 'size']\r\n },\r\n source: airportSourceId,\r\n type: 'symbol',\r\n }\r\n }\r\n\r\n public getAirportFeatureJsonData(data: any, currentIcao: string): GeoJSON.Feature {\r\n return {\r\n geometry: {\r\n coordinates: [data.longitudeInDegrees, data.latitudeInDegrees],\r\n type: 'Point',\r\n },\r\n properties: {\r\n id: data.oid,\r\n 'icon-image': (data.icao == currentIcao)?'airport-icon-active':'airport-icon',\r\n 'size': 0.5,\r\n },\r\n type: 'Feature'\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport { AirportFboGeoFenceCluster } from 'src/app/models/fbo-geofencing/airport-fbo-geo-fence-cluster';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FboFlightWatchService {\r\n\r\nconstructor() { }\r\n public getFbosFeatureJsonData(\r\n fbos: AirportFboGeoFenceCluster\r\n ): any {\r\n return {\r\n geometry: {\r\n coordinates: [\r\n fbos.clusterCoordinatesCollection.map(\r\n (coords) => coords.longitudeLatitudeAsList\r\n ),\r\n ],\r\n type: 'Polygon',\r\n },\r\n properties: {\r\n id: fbos.oid,\r\n description: fbos.fboName,\r\n },\r\n type: 'Feature',\r\n };\r\n }\r\n public getFbosLayer(\r\n fboLayerId: string,\r\n fboSourceId: string\r\n ): mapboxgl.AnyLayer {\r\n return {\r\n id: fboLayerId,\r\n layout: {},\r\n source: fboSourceId,\r\n type: 'fill',\r\n paint: {\r\n 'fill-color': '#0080ff',\r\n 'fill-opacity': 0.5,\r\n },\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Dictionary, keyBy } from 'lodash';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { AcukwikairportsService } from 'src/app/services/acukwikairports.service';\r\nimport { convertDMSToDEG } from 'src/utils/coordinates';\r\nimport { AircraftImageData, AIRCRAFT_IMAGES } from '../aircraft-images';\r\nimport { coordinatesSource } from 'src/app/enums/flight-watch.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class FlightWatchMapService {\r\n constructor(private acukwikairportsService: AcukwikairportsService\r\n ) {}\r\n async getMapCenter(icao: string): Promise {\r\n var selectedAirport = await this.acukwikairportsService.getAcukwikAirportByICAO(icao).toPromise();\r\n return {\r\n lat: convertDMSToDEG(selectedAirport.latitude),\r\n lng: convertDMSToDEG(selectedAirport.longitude),\r\n };\r\n }\r\n getMapCenterByCoordinates(latitudeInDegrees: number, longitudeInDegrees: number): mapboxgl.LngLatLike {\r\n return {\r\n lat: latitudeInDegrees,\r\n lng: longitudeInDegrees,\r\n };\r\n }\r\n getDictionaryByTailNumberAsKey(\r\n data: FlightWatchModelResponse[]\r\n ): Dictionary {\r\n return keyBy(data, (fw) => {\r\n return fw.tailNumber;\r\n });\r\n }\r\n public getDefaultAircraftType(flight: FlightWatchModelResponse): string {\r\n if (!flight.isActiveFuelRelease && !flight.isFuelerLinxClient && flight.isInNetwork) return \"client\";\r\n let atype = flight.aircraftTypeCode;\r\n if (!AIRCRAFT_IMAGES.find((ai) => ai.id === flight.aircraftTypeCode)) {\r\n atype = 'default';\r\n }\r\n return atype;\r\n }\r\n public getGeojsonFeatureSourceJsonData(\r\n features: any[]\r\n ): mapboxgl.AnySourceData {\r\n return {\r\n type: 'geojson',\r\n data: {\r\n type: 'FeatureCollection',\r\n features: features,\r\n },\r\n buffer: 0,\r\n tolerance: 5,\r\n };\r\n }\r\n public buildAircraftId(aircraftId: any): string {\r\n return `aircraft_${aircraftId}`;\r\n }\r\n public filterArrivals(data: FlightWatchModelResponse[] ): FlightWatchModelResponse[]{\r\n return data?.filter((row: FlightWatchModelResponse) => {\r\n return row.arrivalICAO == row.focusedAirportICAO\r\n });\r\n }\r\n public filterDepatures(data: FlightWatchModelResponse[] ): FlightWatchModelResponse[]{\r\n return data?.filter((row: FlightWatchModelResponse) => {\r\n return row.departureICAO == row.focusedAirportICAO\r\n });\r\n }\r\n public filterArrivalsAndDepartures(data: FlightWatchModelResponse[] ): FlightWatchModelResponse[]{\r\n return data?.filter((row: FlightWatchModelResponse) => {\r\n return (\r\n row.sourceOfCoordinates != coordinatesSource.None &&\r\n (row.arrivalICAO == row.focusedAirportICAO ||\r\n row.departureICAO == row.focusedAirportICAO)\r\n );\r\n });\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Dictionary, keys } from 'lodash';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport * as turf from '@turf/turf';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { AirportFboGeofenceClustersService } from '../../../services/airportfbogeofenceclusters.service';\r\nimport {\r\n Aircraftwatch,\r\n FlightWatchModelResponse,\r\n} from '../../../models/flight-watch';\r\nimport { AirportFboGeoFenceCluster } from '../../../models/fbo-geofencing/airport-fbo-geo-fence-cluster';\r\nimport { MapboxglBase } from 'src/app/services/mapbox/mapboxBase';\r\nimport { FlightWatchMapService } from './flight-watch-map-services/flight-watch-map.service';\r\nimport { AircraftFlightWatchService } from './flight-watch-map-services/aircraft-flight-watch.service';\r\nimport { FboFlightWatchService } from './flight-watch-map-services/fbo-flight-watch.service';\r\nimport { AircraftImageData, AIRCRAFT_IMAGES } from './aircraft-images';\r\nimport { AircraftPopupContainerComponent } from '../aircraft-popup-container/aircraft-popup-container.component';\r\nimport { AcukwikAirport } from 'src/app/models/AcukwikAirport';\r\nimport { AcukwikairportsService } from 'src/app/services/acukwikairports.service';\r\nimport { FlightWatchHelper } from '../FlightWatchHelper.service';\r\nimport { MapMarkerInfo, MapMarkers } from 'src/app/models/swim';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { FlightLegStatus, coordinatesSource } from 'src/app/enums/flight-watch.enum';\r\nimport { FlightWatchMapSharedService } from '../services/flight-watch-map-shared.service';\r\nimport * as SharedEvents from 'src/app/constants/sharedEvents';\r\n\r\ntype LayerType = 'airway' | 'streetview' | 'icao' | 'taxiway';\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'app-flight-watch-map',\r\n styleUrls: ['./flight-watch-map.component.scss'],\r\n templateUrl: './flight-watch-map.component.html',\r\n})\r\nexport class FlightWatchMapComponent\r\n extends MapboxglBase\r\n implements OnInit, OnChanges, OnDestroy\r\n{\r\n @Input() center: mapboxgl.LngLatLike;\r\n @Input() data: Dictionary;\r\n @Input() selectedPopUp: FlightWatchModelResponse;\r\n @Input() isStable: boolean;\r\n @Input() icao: string;\r\n\r\n @Output() markerClicked = new EventEmitter();\r\n @Output() setIcaoList = new EventEmitter();\r\n @Output() popUpClosed = new EventEmitter();\r\n @Output() updatePopUpData = new EventEmitter();\r\n @Output() getLatestData = new EventEmitter();\r\n\r\n\r\n @ViewChild('aircraftPopupContainer')\r\n aircraftPopupContainer: AircraftPopupContainerComponent;\r\n @ViewChild('aircraftPopupContainer', { read: ElementRef, static: false })\r\n aircraftPopupContainerRef!: ElementRef;\r\n\r\n public acukwikairports: AcukwikAirport[];\r\n nearbyMiles: number = 150;\r\n //popup\r\n public popupData: Aircraftwatch;\r\n public fboId: any;\r\n public groupId: any;\r\n public selectedAircraft: string[] = [];\r\n\r\n // Map Options\r\n public styleLoaded = false;\r\n public mapStyle: string =\r\n 'mapbox://styles/fuelerlinx/ckszkcycz080718l7oaqoszvd';\r\n public mapContainer: string = 'flight-watch-map';\r\n\r\n public clusters: AirportFboGeoFenceCluster[];\r\n\r\n public isMapDataLoading: boolean = false;\r\n\r\n public startTime: number = Date.now();\r\n private animationFrameIds: number[] = [];\r\n\r\n private previousFlightData: Record = {};\r\n\r\n private backwardLogs: Record = {};\r\n\r\n private popupUpdatesTracking: Record = {};\r\n\r\n private aicraftDataFeatures: GeoJSON.Feature[] = [];\r\n private aicraftDataSource: mapboxgl.GeoJSONSource = null;\r\n\r\n // Mapbox and layers IDs\r\n public mapMarkers: MapMarkers= {\r\n flights : {\r\n sourceId: 'flightSource',\r\n layerId: 'flightLayer',\r\n data: null\r\n },\r\n flightsReversed : {\r\n sourceId: 'flightReversedSource',\r\n layerId: 'flightReversedLayer',\r\n data: null\r\n },\r\n fbos: {\r\n sourceId: 'fbosSourceId',\r\n layerId: 'fbosLayerId',\r\n data: null\r\n },\r\n airports: {\r\n sourceId: 'airportSourceId',\r\n layerId: 'airportLayerId',\r\n data: null\r\n }\r\n }\r\n\r\n isNextCallEnqueued: boolean = false;\r\n\r\n constructor(\r\n private airportFboGeoFenceClustersService: AirportFboGeofenceClustersService,\r\n private sharedService: SharedService,\r\n private flightWatchMapService: FlightWatchMapService,\r\n private fboFlightWatchService: FboFlightWatchService,\r\n private aircraftFlightWatchService: AircraftFlightWatchService,\r\n private acukwikairportsService: AcukwikairportsService,\r\n private flightWatchHelper: FlightWatchHelper,\r\n private flightWatchMapSharedService: FlightWatchMapSharedService\r\n ) {\r\n super();\r\n this.fboId = this.sharedService.currentUser.fboId;\r\n this.groupId = this.sharedService.currentUser.groupId;\r\n this.icao = (this.icao == null) ?\r\n this.sharedService.getCurrentUserPropertyValue(localStorageAccessConstant.icao)\r\n : this.icao;\r\n }\r\n ngOnInit(): void {\r\n this.sharedService.emitChange(SharedEvents.flightWatchDataEvent);\r\n if(this.center) this.loadMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.aircraftPopupContainer.getCustomersList(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n );\r\n }\r\n ngOnDestroy(): void {\r\n this.mapRemove();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(this.center && !this.map && !this.isMapDataLoading){\r\n this.loadMap();\r\n return;\r\n }\r\n\r\n if(!this.map || this.isMapDataLoading) return;\r\n\r\n if(changes.center){\r\n this.flyTo(this.center);\r\n this.updateAicraftsOnMapBounds(this.data);\r\n }\r\n\r\n if (changes.data && this.styleLoaded) {\r\n this.startTime = Date.now();\r\n this.popupUpdatesTracking = {};\r\n this.previousFlightData = {};\r\n\r\n if(changes.data.previousValue){\r\n for (let key in changes.data.previousValue) {\r\n if(changes.data.previousValue[key] === undefined || changes.data.currentValue[key] === undefined){\r\n continue;\r\n }\r\n if(changes.data.previousValue[key].sourceOfCoordinates == coordinatesSource.Antenna &&\r\n changes.data.currentValue[key].sourceOfCoordinates == coordinatesSource.Swim &&\r\n (changes.data.currentValue[key].status == FlightLegStatus.Landing || changes.data.currentValue[key].status == FlightLegStatus.Arrived))\r\n continue;\r\n this.previousFlightData[key] = changes.data.previousValue[key];\r\n }\r\n }\r\n else{\r\n for (let key in changes.data.currentValue) {\r\n this.previousFlightData[key] = changes.data.currentValue[key];\r\n }\r\n }\r\n this.updateAicraftsOnMapBounds(changes.data.currentValue);\r\n }\r\n\r\n if(changes.selectedPopUp)\r\n this.setPopUpContainerData(changes.selectedPopUp.currentValue);\r\n }\r\n private loadMap(): void {\r\n this.buildMap(this.center, this.mapContainer, this.mapStyle)\r\n .addNavigationControls()\r\n .onStyleData(async () => {\r\n this.styleLoaded = true;\r\n })\r\n .onLoad(async () => {\r\n this.isMapDataLoading = true;\r\n this.resizeMap();\r\n await this.loadMapIcons();\r\n await this.loadMapDataAsync();\r\n this.isMapDataLoading = false;\r\n this.getLatestData.emit();\r\n })\r\n .onSourcedata(async () => {\r\n let flightslayer = this.map.getLayer(this.mapMarkers.flights.layerId);\r\n let airportlayer = this.map.getLayer(this.mapMarkers.airports.layerId);\r\n let fbolayer = this.map.getLayer(this.mapMarkers.fbos.layerId);\r\n if(flightslayer && airportlayer && fbolayer){\r\n this.map.moveLayer(this.mapMarkers.fbos.layerId,this.mapMarkers.airports.layerId);\r\n this.map.moveLayer(this.mapMarkers.flights.layerId);\r\n }\r\n })\r\n .onZoomEnd(async () => {\r\n this.updateAicraftsOnMapBounds(this.data);\r\n })\r\n .onDragend(async () => {\r\n this.updateAicraftsOnMapBounds(this.data);\r\n });\r\n }\r\n private updateAicraftsOnMapBounds(flights: Record ): void {\r\n if(!flights || !this.aicraftDataSource) return;\r\n this.setMapMarkersData(keys(flights));\r\n this.checkForPopupOpen();\r\n this.updateFlightOnMap(this.mapMarkers.flights);\r\n }\r\n async loadMapDataAsync(): Promise {\r\n var promisesArray = []\r\n promisesArray.push(this.getFncAsAsync(this.loadFlightOnMap()));\r\n promisesArray.push(this.getFncAsAsync(this.loadICAOIconOnMap(this.icao)));\r\n promisesArray.push(this.getFncAsAsync(this.getFbosAndLoad()));\r\n promisesArray.concat();\r\n\r\n return Promise.all(promisesArray);\r\n }\r\n async loadICAOIconOnMap(currentIcao: string): Promise{\r\n this.acukwikairports = await this.acukwikairportsService.getNearByAcukwikAirportsByICAO(this.icao,this.nearbyMiles).toPromise();\r\n this.setIcaoList.emit(this.acukwikairports);\r\n\r\n var markers: any[] = this.acukwikairports.map((data) => {\r\n return this.aircraftFlightWatchService.getAirportFeatureJsonData(data, currentIcao);\r\n });\r\n\r\n this.addSource(this.mapMarkers.airports.sourceId, this.flightWatchMapService.getGeojsonFeatureSourceJsonData(markers));\r\n\r\n this.addLayer(this.aircraftFlightWatchService.getAirportLayerJsonData(this.mapMarkers.airports.layerId, this.mapMarkers.airports.sourceId));\r\n }\r\n async updateICAOIconOnMap(currentIcao: string): Promise{\r\n this.acukwikairports = await this.acukwikairportsService.getNearByAcukwikAirportsByICAO(this.icao,this.nearbyMiles).toPromise();\r\n this.setIcaoList.emit(this.acukwikairports);\r\n\r\n var markers: any[] = this.acukwikairports.map((data) => {\r\n return this.aircraftFlightWatchService.getAirportFeatureJsonData(data, currentIcao);\r\n });\r\n const data: any = {\r\n type: 'FeatureCollection',\r\n features: markers,\r\n };\r\n const source = this.getSource(this.mapMarkers.airports.sourceId);\r\n\r\n if(!source) return;\r\n\r\n source.setData(data);\r\n }\r\n async loadMapIcons(): Promise {\r\n var promisesArray = []\r\n promisesArray.push(this.loadICAOIcon());\r\n promisesArray.push(this.loadActiveICAOIcon());\r\n promisesArray.concat(this.loadAircraftIcon());\r\n\r\n return Promise.all(promisesArray);\r\n }\r\n async loadICAOIcon(): Promise{\r\n let imageName = `airport-icon`;\r\n let imageUrl = `/assets/img/swim-airport.png`;\r\n return this.loadPNGImageAsync(imageUrl, imageName);\r\n }\r\n async loadActiveICAOIcon(): Promise{\r\n let imageName = `airport-icon-active`;\r\n let imageUrl = `/assets/img/swim-airport-active.png`;\r\n return this.loadPNGImageAsync(imageUrl, imageName);\r\n }\r\n async loadAircraftIcon(): Promise {\r\n let aircraftIconPromises = []\r\n return Promise.all(\r\n AIRCRAFT_IMAGES.map(\r\n async (image: AircraftImageData) => {\r\n let imageName = `aircraft_image_${image.id}`;\r\n let img1 = this.loadSVGImageAsync(\r\n image.size,\r\n image.size,\r\n image.url,\r\n imageName\r\n );\r\n\r\n let imageNameReversed = `${imageName}_reversed`;\r\n let img2 = this.loadSVGImageAsync(\r\n image.size,\r\n image.size,\r\n image.reverseUrl,\r\n imageNameReversed\r\n );\r\n imageName = `aircraft_image_${image.id}_release`;\r\n let img3 = this.loadSVGImageAsync(\r\n image.size,\r\n image.size,\r\n image.blueUrl,\r\n imageName\r\n );\r\n\r\n imageName = `aircraft_image_${image.id}_reversed_release`;\r\n let img4 = this.loadSVGImageAsync(\r\n image.size,\r\n image.size,\r\n image.blueReverseUrl,\r\n imageName\r\n );\r\n\r\n imageName = `aircraft_image_${image.id}_fuelerlinx`;\r\n let img5 = this.loadSVGImageAsync(\r\n image.size,\r\n image.size,\r\n image.fuelerlinxUrl,\r\n imageName\r\n );\r\n\r\n imageName = `aircraft_image_${image.id}_reversed_fuelerlinx`;\r\n\r\n let img6 = this.loadSVGImageAsync(\r\n image.size,\r\n image.size,\r\n image.fuelerlinxReverseUrl,\r\n imageName\r\n );\r\n aircraftIconPromises.concat([img1, img2, img3, img4, img5, img6]);\r\n }\r\n )\r\n );\r\n }\r\n private checkForPopupOpen(): void {\r\n this.selectedAircraft?.forEach(selectedFlightId => {\r\n if(!this.openedPopUps[selectedFlightId].isOpen && this.openedPopUps[selectedFlightId].popupInstance == null) return;\r\n if(this.mapMarkers.flights.data.filter(x => x == this.openedPopUps[selectedFlightId].popupId).length > 0) return;\r\n this.resetCurrentPopUpState(selectedFlightId);\r\n });\r\n }\r\n private resetCurrentPopUpState(selectedFlightId: string): void {\r\n this.selectedAircraft = this.selectedAircraft.filter(e => e != selectedFlightId);\r\n this.closeAllPopUps();\r\n }\r\n setPopUpContainerData(selectedPopUp: FlightWatchModelResponse) {\r\n var makemodelstr = this.flightWatchHelper.getSlashSeparationDisplayString(selectedPopUp.make,selectedPopUp.model);\r\n makemodelstr = this.flightWatchHelper.getEmptyorDefaultStringText(makemodelstr);\r\n let obj : Aircraftwatch= {\r\n customerInfoByGroupId: selectedPopUp.customerInfoByGroupId,\r\n tailNumber: selectedPopUp.tailNumber,\r\n atcFlightNumber: selectedPopUp.atcFlightNumber,\r\n aircraftTypeCode: selectedPopUp.aircraftTypeCode,\r\n isAircraftOnGround: selectedPopUp.isAircraftOnGround,\r\n flightDepartment: selectedPopUp.flightDepartment,\r\n aircraftMakeModel: makemodelstr,\r\n lastQuote: selectedPopUp.lastQuote,\r\n currentPricing: selectedPopUp.currentPricing,\r\n aircraftICAO: selectedPopUp.icaoAircraftCode,\r\n faaRegisteredOwner: selectedPopUp.faaRegisteredOwner,\r\n origin: selectedPopUp.departureICAO,\r\n destination: selectedPopUp.arrivalICAO,\r\n isJetNetEnabled: false\r\n };\r\n\r\n this.popupData = Object.assign({}, obj);\r\n }\r\n setPopUpData(selectedPopUp: Aircraftwatch) {\r\n this.popupData = Object.assign({}, selectedPopUp);\r\n }\r\n loadFlightOnMap() {\r\n this.setMapMarkersData(keys(this.data));\r\n\r\n this.loadFlightMarkersOnMap(this.mapMarkers.flights);\r\n }\r\n loadFlightMarkersOnMap(marker: MapMarkerInfo) {\r\n const markers = this.getFlightSourcerFeatureMarkers(\r\n marker.data\r\n );\r\n this.addSource(\r\n marker.sourceId,\r\n this.flightWatchMapService.getGeojsonFeatureSourceJsonData(markers)\r\n );\r\n this.addLayer(\r\n this.aircraftFlightWatchService.getFlightLayerJsonData(\r\n marker.layerId,\r\n marker.sourceId\r\n )\r\n );\r\n this.aicraftDataSource = this.getSource(marker.sourceId);\r\n this.applyMouseFunctions(marker.layerId);\r\n }\r\n updateFlightOnMap(marker: MapMarkerInfo) {\r\n this.aicraftDataFeatures = this.getFlightSourcerFeatureMarkers(marker.data);\r\n\r\n this.cancelExistingAnimationFames();\r\n this.animateAircrafts();\r\n }\r\n readonly animate = (self: any) => {\r\n let elapsedTime = Date.now() - this.startTime;\r\n let progress = elapsedTime / environment.flightWatch.apiCallInterval;\r\n let popUpCoordinates: number[] = null;\r\n if (progress < 1) {\r\n this.aicraftDataFeatures.forEach((pointSource) => {\r\n var coordinates = pointSource.properties['origin-coordinates'];\r\n var targetCoordinates = pointSource.properties['destination-coordinates'];\r\n\r\n if(coordinates[0] == targetCoordinates[0] && coordinates[1] == targetCoordinates[1]) return;\r\n\r\n let lng = coordinates[0] + (targetCoordinates[0] - coordinates[0]) * progress;\r\n let lat = coordinates[1] + (targetCoordinates[1] - coordinates[1]) * progress;\r\n let currentCoordinates = [lng, lat];\r\n\r\n let liveBearing = turf.bearingToAzimuth(turf.bearing(\r\n turf.point(currentCoordinates),\r\n turf.point(targetCoordinates)\r\n ));\r\n\r\n var previousCoordinates = [self.previousFlightData[pointSource.properties.id].previousLongitude, self.previousFlightData[pointSource.properties.id].previousLatitude];\r\n var previoustargetCoordinates = [self.previousFlightData[pointSource.properties.id].longitude, self.previousFlightData[pointSource.properties.id].latitude]\r\n\r\n let previousiveBearing = turf.bearingToAzimuth(turf.bearing(\r\n turf.point(previousCoordinates),\r\n turf.point(previoustargetCoordinates)\r\n ));\r\n\r\n pointSource = self.updateIconImage(pointSource,popUpCoordinates,currentCoordinates);\r\n\r\n if(liveBearing == 0)return;\r\n\r\n let isBackwards = self.IsBackwardsBearing(previousiveBearing,liveBearing);\r\n\r\n if(isBackwards && [FlightLegStatus.EnRoute].includes(pointSource.properties.status)){\r\n self.data[pointSource.properties.id].liveBearing = liveBearing;\r\n self.data[pointSource.properties.id].currentCoordinates = currentCoordinates;\r\n self.data[pointSource.properties.id].targetCoordinates = targetCoordinates;\r\n self.data[pointSource.properties.id].backEndBearing = pointSource.properties.bearing;\r\n self.data[pointSource.properties.id].liveCaulculatedBearing = liveBearing;\r\n self.data[pointSource.properties.id].previousCorrectModel = self.previousFlightData[pointSource.properties.id];\r\n\r\n self.data[pointSource.properties.id].previousCorrectModel.currentCoordinates = previousCoordinates;\r\n self.data[pointSource.properties.id].previousCorrectModel.targetCoordinates = previoustargetCoordinates;\r\n self.data[pointSource.properties.id].previousCorrectModel.liveBearing = previousiveBearing;\r\n\r\n self.backwardLogs[pointSource.properties.id] = self.data[pointSource.properties.id];\r\n return;\r\n }\r\n\r\n pointSource.geometry.coordinates = currentCoordinates;\r\n\r\n pointSource.properties.bearing = liveBearing;\r\n\r\n });\r\n\r\n self.aicraftDataSource.setData(\r\n {\r\n type: 'FeatureCollection',\r\n features: this.aicraftDataFeatures,\r\n }\r\n );\r\n\r\n for(let prop in this.popupUpdatesTracking) {\r\n self.refreshPopUp(this.popupUpdatesTracking[prop],prop);\r\n }\r\n\r\n let callbackFrameId = requestAnimationFrame(() => self.animate(self));\r\n self.animationFrameIds.push(callbackFrameId);\r\n }else{\r\n self.aicraftDataFeatures = null;\r\n self.cancelExistingAnimationFames();\r\n this.getLatestData.emit();\r\n this.isNextCallEnqueued = false;\r\n return;\r\n }\r\n if(elapsedTime > (environment.flightWatch.apiCallInterval - 1000) && !this.isNextCallEnqueued){\r\n self.sharedService.emitChange(SharedEvents.flightWatchDataEvent);\r\n this.isNextCallEnqueued = true;\r\n }\r\n }\r\n private animateAircrafts(): void {\r\n let frameid = requestAnimationFrame(() => this.animate(this));\r\n this.animationFrameIds.push(frameid);\r\n }\r\n private updateIconImage(pointSource: any, popUpCoordinates: number[], currentCoordinates: number[]): any {\r\n //need to update the icon image change on animation\r\n //working with some lag, need to seach for better solution\r\n if(this.selectedAircraft?.includes(pointSource.properties.id)){\r\n popUpCoordinates = currentCoordinates;\r\n const reverseIcon = this.aircraftFlightWatchService.getAricraftIcon(true,this.data[pointSource.properties.id]);\r\n pointSource.properties['default-icon-image'] = reverseIcon;\r\n this.popupUpdatesTracking[pointSource.properties.id] = popUpCoordinates;\r\n }else{\r\n const defaultIcon = this.aircraftFlightWatchService.getAricraftIcon(false,this.data[pointSource.properties.id]);\r\n pointSource.properties['default-icon-image'] = defaultIcon;\r\n }\r\n return pointSource;\r\n }\r\n private IsBackwardsBearing(bearing: number,liveBearing: number): boolean {\r\n let start = turf.bearingToAzimuth( bearing+160);\r\n let end = turf.bearingToAzimuth(bearing+200);\r\n return this.isBearingInRange(liveBearing,start,end);\r\n }\r\n private isBearingInRange(bearing: number, rangeStart: number, rangeEnd: number): boolean {\r\n if (rangeStart < rangeEnd) {\r\n return bearing >= rangeStart && bearing <= rangeEnd;\r\n } else {\r\n // Handling the case where the range spans across 360 degrees\r\n return bearing >= rangeStart || bearing <= rangeEnd;\r\n }\r\n }\r\n private refreshPopUp(popUpCoordinates: number[],selectedFlightId: string): void {\r\n if (!this.openedPopUps[selectedFlightId].isOpen && this.openedPopUps[selectedFlightId].popupId == null) return;\r\n\r\n if (!popUpCoordinates == null){\r\n this.resetCurrentPopUpState(selectedFlightId);\r\n } else {\r\n this.updateOpenedPopUpCoordinates(popUpCoordinates, selectedFlightId);\r\n }\r\n }\r\n private cancelExistingAnimationFames(): void {\r\n // for(let prop in this.backwardLogs) {\r\n // this.airportWatchService.logBackwards(this.backwardLogs[prop]).subscribe((response: any) => {\r\n // });\r\n // }\r\n this.backwardLogs = {};\r\n for (const id of this.animationFrameIds) {\r\n cancelAnimationFrame(id);\r\n }\r\n this.animationFrameIds = [];\r\n }\r\n updateOpenedPopUpCoordinates(coordinates: any, selectedFlightId: string): void {\r\n this.openedPopUps[selectedFlightId].coordinates = coordinates;\r\n let LngLat: mapboxgl.LngLatLike = {lng: coordinates[0], lat: coordinates[1]};\r\n\r\n this.openedPopUps[selectedFlightId].popupInstance.setLngLat(LngLat);\r\n }\r\n setMapMarkersData(flights: string[]): void{\r\n flights = flights.filter((key) => {\r\n if(this.previousFlightData[key] == null) return false;\r\n return this.map.getBounds().contains([this.previousFlightData[key].longitude, this.previousFlightData[key].latitude]) || this.map.getBounds().contains([this.data[key].longitude, this.data[key].latitude]) }) || [];\r\n\r\n let activeFuelRelease = flights.filter((key) => { return this.data[key].isActiveFuelRelease }) || [];\r\n\r\n let fuelerLinxClient = flights.filter((key) => { return this.data[key].isFuelerLinxClient && !this.data[key].isActiveFuelRelease}) || [];\r\n\r\n let inNetwork = flights.filter((key) => { return this.data[key].isInNetwork && !this.data[key].isActiveFuelRelease && !this.data[key].isFuelerLinxClient}) || [];\r\n\r\n let outOfNetwork = flights.filter((key) => { return !this.data[key].isInNetwork && !this.data[key].isActiveFuelRelease && !this.data[key].isFuelerLinxClient }) || [];\r\n\r\n this.mapMarkers.flights.data = [].concat(outOfNetwork,inNetwork,fuelerLinxClient,activeFuelRelease);\r\n this.mapMarkers.flightsReversed.data = [].concat(outOfNetwork,inNetwork,fuelerLinxClient,activeFuelRelease);\r\n\r\n }\r\n getFlightSourcerFeatureMarkers(flights: string[]): GeoJSON.Feature[] {\r\n return flights.map((key) => {\r\n const row = this.data[key];\r\n return this.aircraftFlightWatchService.getFlightFeatureJsonData(\r\n row\r\n );\r\n });\r\n }\r\n applyMouseFunctions(layerid: string): void {\r\n this.onClick(layerid, (e) => this.clickHandler(e, this));\r\n this.addHoverPointerActions(layerid);\r\n }\r\n async clickHandler(\r\n e: mapboxgl.MapMouseEvent & {\r\n features?: mapboxgl.MapboxGeoJSONFeature[];\r\n } & mapboxgl.EventData,\r\n self: FlightWatchMapComponent\r\n ) {\r\n const id = e.features[0].properties.id;\r\n\r\n if (self.selectedAircraft.includes(id)) {\r\n return;\r\n }\r\n self.markerClicked.emit(this.data[id]);\r\n\r\n self.createPopUp(self, id);\r\n\r\n }\r\n private async createPopUp(self: FlightWatchMapComponent, id: string): Promise{\r\n this.flightWatchMapSharedService.getAndUpdateAircraftWithHistorical(this.fboId, this.icao, this.data[id]);\r\n this.updatePopUpData.emit(this.data[id]);\r\n\r\n self.selectedAircraft = [id];\r\n self.closeAllPopUps();\r\n\r\n self.openedPopUps[id] = {...this.popUpPropsNewInstance}\r\n self.openedPopUps[id].popupId = id;\r\n self.openedPopUps[id].coordinates = [\r\n self.data[id].longitude,\r\n self.data[id].latitude,\r\n ];\r\n\r\n self.openedPopUps[id].popupInstance = self.openPopupRenderComponent(\r\n self.openedPopUps[id].coordinates,\r\n self.aircraftPopupContainerRef\r\n );\r\n self.openedPopUps[id].popupInstance.on('close', function(event) {\r\n self.selectedAircraft = self.selectedAircraft.filter(e => e != id);\r\n self.openedPopUps[id].isOpen = false;\r\n self.openedPopUps[id].popupId = null;\r\n self.popUpClosed.emit(self.data[id]);\r\n });\r\n }\r\n getFbosAndLoad() {\r\n if (this.clusters) return;\r\n this.airportFboGeoFenceClustersService\r\n .getClustersByIcao(this.icao)\r\n .subscribe((response: any) => {\r\n this.clusters = [];\r\n if (!response) return;\r\n this.clusters.push(...response);\r\n this.loadFbosOnMap();\r\n });\r\n }\r\n\r\n loadFbosOnMap() {\r\n if (!this.clusters) return;\r\n\r\n const markers = [];\r\n this.clusters.forEach((cluster) => {\r\n markers.push(\r\n this.fboFlightWatchService.getFbosFeatureJsonData(cluster)\r\n );\r\n });\r\n this.addSource(\r\n this.mapMarkers.fbos.sourceId,\r\n this.flightWatchMapService.getGeojsonFeatureSourceJsonData(markers)\r\n );\r\n this.addLayer(\r\n this.fboFlightWatchService.getFbosLayer(\r\n this.mapMarkers.fbos.layerId,\r\n this.mapMarkers.fbos.sourceId\r\n )\r\n );\r\n this.createPopUpOnMouseEnterFromDescription(this.mapMarkers.fbos.layerId);\r\n }\r\n\r\n getLayersFromType(type: LayerType) {\r\n const airwayLayers = ['airways-lines', 'airways-labels'];\r\n const taxwayLayers = ['taxiways-lines', 'taxiways-labels'];\r\n const styleLayers = this.map\r\n .getStyle()\r\n .layers.filter(\r\n (layer) =>\r\n !layer.id.startsWith('aircraft_') &&\r\n !airwayLayers.includes(layer.id)\r\n )\r\n .map((layer) => layer.id);\r\n const icaoLayers = ['airports-names'];\r\n\r\n if (type === 'airway') {\r\n return airwayLayers;\r\n }\r\n if (type === 'taxiway') {\r\n return taxwayLayers;\r\n }\r\n if (type === 'streetview') {\r\n return styleLayers;\r\n }\r\n if (type === 'icao') {\r\n return icaoLayers;\r\n }\r\n return [];\r\n }\r\n\r\n updateAircraft(event: Aircraftwatch): void {\r\n let selectedFlight = keys(this.data).find(\r\n (key) => this.data[key].tailNumber == event.tailNumber\r\n );\r\n\r\n this.data[selectedFlight].isInNetwork = true;\r\n this.data[selectedFlight].flightDepartment = event.flightDepartment;\r\n this.data[selectedFlight].aircraftTypeCode = event.aircraftTypeCode;\r\n\r\n this.markerClicked.emit(this.data[selectedFlight]);\r\n }\r\n goToAirport(icao: string){\r\n if(!this.acukwikairports){\r\n console.log('acukwikairports not loaded');\r\n return;\r\n }\r\n let airport = this.acukwikairports.find( x => x.icao == icao);\r\n this.flyToCoordinates(airport.latitudeInDegrees,airport.longitudeInDegrees);\r\n }\r\n flyToCoordinates(latitudeInDegrees: number, longitudeInDegrees: number): void{\r\n this.flyTo(this.flightWatchMapService.getMapCenterByCoordinates(latitudeInDegrees,longitudeInDegrees));\r\n this.updateAicraftsOnMapBounds(this.data);\r\n }\r\n openAircraftPopUpByTailNumber(tailNumber: string): void {\r\n let selectedFlight = keys(this.data).find(\r\n (key) => this.data[key].tailNumber == tailNumber\r\n );\r\n\r\n if (!selectedFlight) return;\r\n\r\n\r\n this.createPopUp(this, selectedFlight);\r\n\r\n this.flyTo(this.flightWatchMapService.getMapCenterByCoordinates(this.data[selectedFlight].latitude,this.data[selectedFlight].longitude));\r\n }\r\n closeAircraftPopUpByTailNumber(tailNumber: string): void {\r\n let selectedFlight = keys(this.data).find(\r\n (key) => this.data[key].tailNumber == tailNumber\r\n );\r\n\r\n if (!selectedFlight) return;\r\n this.openedPopUps[selectedFlight].popupInstance.remove();\r\n\r\n delete this.openedPopUps[selectedFlight];\r\n }\r\n goToCurrentIcao(){\r\n this.goToAirport(this.icao);\r\n }\r\n toggleLayer(type: LayerType) {\r\n const layers = this.getLayersFromType(type);\r\n\r\n const visibility = this.getLayoutProperty(layers[0], 'visibility');\r\n\r\n // Toggle layer visibility by changing the layout object's visibility property.\r\n if (visibility === 'visible' || visibility === undefined) {\r\n layers.forEach((layer) => {\r\n this.setLayoutProperty(layer, 'visibility', 'none');\r\n });\r\n } else {\r\n layers.forEach((layer) => {\r\n this.setLayoutProperty(layer, 'visibility', 'visible');\r\n });\r\n }\r\n }\r\n resizeMap(isopen: boolean = false){\r\n var mapCanvas = document.getElementsByClassName('mapboxgl-canvas')[0] as HTMLElement;\r\n var mapDiv = document.getElementById(this.mapContainer);\r\n var mapWrapper = document.getElementById('map-wrapper');\r\n\r\n if(isopen){\r\n mapDiv.style.width = mapWrapper.offsetWidth + 'px';\r\n mapCanvas.style.width = '100%';\r\n\r\n }else{\r\n mapDiv.style.width = '100%';\r\n mapCanvas.style.width = '100%';\r\n }\r\n\r\n this.map.resize();\r\n }\r\n}\r\n","\r\n
\r\n\r\n
\r\n wifi_tethering_off\r\n Server Error!!!\r\n
\r\n
\r\n \"my\r\n
\r\n","import {\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\nimport { ResizeEvent } from 'angular-resizable-element';\r\nimport { isEmpty } from 'lodash';\r\nimport { LngLatLike } from 'mapbox-gl';\r\nimport { AcukwikAirport } from 'src/app/models/AcukwikAirport';\r\nimport { SwimFilter } from 'src/app/models/filter';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport {\r\n FlightWatchModelResponse,\r\n} from '../../models/flight-watch';\r\nimport { FlightWatchMapService } from './flight-watch-map/flight-watch-map-services/flight-watch-map.service';\r\nimport { FlightWatchMapWrapperComponent } from './flight-watch-map-wrapper/flight-watch-map-wrapper.component';\r\nimport { isCommercialAircraft } from 'src/utils/aircraft';\r\nimport { FlightWatchAicraftGridComponent } from './flight-watch-aicraft-grid/flight-watch-aicraft-grid.component';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as SharedEvents from 'src/app/constants/sharedEvents';\r\nimport { Subscription } from 'rxjs';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n@Component({\r\n selector: 'app-flight-watch',\r\n styleUrls: ['./flight-watch.component.scss'],\r\n templateUrl: './flight-watch.component.html',\r\n})\r\nexport class FlightWatchComponent implements OnInit, OnDestroy {\r\n @Input() showBreadcrumb: boolean = true;\r\n @Input() showFilters: boolean = true;\r\n @Input() showLegend: boolean = true;\r\n @Input() isLobbyView: boolean = false;\r\n\r\n @ViewChild(FlightWatchMapWrapperComponent)\r\n private mapWrapper: FlightWatchMapWrapperComponent;\r\n @ViewChild('mapfilters') public drawer: MatDrawer;\r\n @ViewChild('flightwatchAircraftGrid') public flightwatchAircraftGrid: FlightWatchAicraftGridComponent;\r\n\r\n pageTitle = 'Flight Watch';\r\n\r\n isStable = true;\r\n center: LngLatLike = null;\r\n flightWatchDataSource: MatTableDataSource;\r\n\r\n flightWatchData: FlightWatchModelResponse[] = null;\r\n filteredFlightWatchData: FlightWatchModelResponse[];\r\n acukwikairport: AcukwikAirport[];\r\n airportsICAO: string[];\r\n selectedICAO: string;\r\n\r\n style: any = {};\r\n currentFilters: SwimFilter = {\r\n filterText: '',\r\n dataType: null,\r\n isCommercialAircraftVisible: true,\r\n filteredTypes: [],\r\n };\r\n\r\n valueChangedSubscription: Subscription;\r\n\r\n constructor(\r\n private flightWatchMapService: FlightWatchMapService,\r\n private sharedService: SharedService,\r\n public dialog: MatDialog,\r\n private cdref: ChangeDetectorRef\r\n ) {\r\n \r\n this.selectedICAO = this.sharedService.getCurrentUserPropertyValue(\r\n localStorageAccessConstant.icao\r\n );\r\n }\r\n ngAfterContentChecked() {\r\n this.cdref.detectChanges();\r\n\r\n }\r\n ngAfterViewInit() {\r\n this.toggleSettingsDrawer();\r\n }\r\n async ngOnInit() {\r\n if(this.center == null)\r\n this.center = await this.flightWatchMapService.getMapCenter(this.selectedICAO);\r\n\r\n this.valueChangedSubscription = this.sharedService.valueChanged$.subscribe((value: {event: string, data: any}) => {\r\n if(value.event === SharedEvents.flightWatchDataEvent){\r\n if(value.data){\r\n this.flightWatchData = this.flightWatchMapService.filterArrivalsAndDepartures(value.data);\r\n this.isStable = true;\r\n }else{\r\n this.flightWatchData = [];\r\n this.isStable = false;\r\n }\r\n this.applyFiltersToData();\r\n }\r\n if (value.event == SharedEvents.flyToOnMapEvent) {\r\n this.center = this.flightWatchMapService.getMapCenterByCoordinates(value.data.latitude,value.data.longitude);\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.valueChangedSubscription?.unsubscribe();\r\n }\r\n setIcaoList(airportList: AcukwikAirport[]) {\r\n this.acukwikairport = airportList;\r\n let icaoList = airportList.map((data) => {\r\n return data.icao;\r\n });\r\n this.airportsICAO = icaoList;\r\n }\r\n updateIcao(icao: string) {\r\n this.mapWrapper.map.goToAirport(icao);\r\n this.mapWrapper.map.updateICAOIconOnMap(icao);\r\n this.selectedICAO = icao;\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.icao, this.selectedICAO);\r\n this.sharedService.emitChange(SharedEvents.icaoChangedEvent);\r\n }\r\n onTextFilterChanged(filter: string): void {\r\n this.currentFilters.filterText = filter;\r\n this.applyFiltersToData();\r\n }\r\n applyFiltersToData(): void {\r\n this.flightWatchData = this.filterData(\r\n this.currentFilters.filterText?.toLowerCase(),\r\n this.flightWatchData\r\n );\r\n }\r\n filterData(\r\n filter: string,\r\n records: FlightWatchModelResponse[]\r\n ): FlightWatchModelResponse[] {\r\n if (this.currentFilters.filteredTypes.length) {\r\n records = records.filter((fw) =>\r\n this.currentFilters.filteredTypes.includes(fw.aircraftTypeCode)\r\n );\r\n }\r\n if (!this.currentFilters.isCommercialAircraftVisible) {\r\n records = records.filter(\r\n (flightWatch) =>\r\n !isCommercialAircraft(flightWatch.atcFlightNumber)\r\n );\r\n }\r\n\r\n if (!filter && !filter?.trim()) return records;\r\n\r\n return records.filter(\r\n (fw) =>\r\n fw.tailNumber?.toLowerCase().includes(filter) ||\r\n fw.flightDepartment?.toLowerCase().includes(filter) ||\r\n fw.departureCity?.toLowerCase().includes(filter) ||\r\n fw.arrivalCity?.toLowerCase().includes(filter)\r\n );\r\n }\r\n validate(event: ResizeEvent): boolean {\r\n const MAX_DIMENSIONS_PX = 800;\r\n const MIN_DIMENSIONS_PX = 0;\r\n if (\r\n event.rectangle.width &&\r\n (event.rectangle.width > MAX_DIMENSIONS_PX ||\r\n event.rectangle.width < MIN_DIMENSIONS_PX)\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n onResizeEnd(event: ResizeEvent): void {\r\n this.style = {\r\n width: `${event.rectangle.width}px`,\r\n };\r\n\r\n setTimeout(() => {\r\n this.mapWrapper.map.mapResize();\r\n });\r\n }\r\n\r\n get mapWidth() {\r\n if (isEmpty(this.style)) {\r\n return 'calc(100% - 400px)';\r\n }\r\n return `calc(100% - ${this.style.width})`;\r\n }\r\n\r\n onTypesFilterChanged(filteredTypes: string[]) {\r\n this.currentFilters.filteredTypes = filteredTypes;\r\n this.applyFiltersToData();\r\n }\r\n openAircraftPopup(tailNumber: string) {\r\n this.mapWrapper.map.openAircraftPopUpByTailNumber(tailNumber);\r\n }\r\n closedAircraftPopup(tailNumber: string) {\r\n this.mapWrapper.map.closeAircraftPopUpByTailNumber(tailNumber);\r\n }\r\n async updateButtonOnDrawerResize() {\r\n if (!this.drawer.opened) return;\r\n await this.drawer.toggle();\r\n this.toggleSettingsDrawer();\r\n }\r\n async toggleSettingsDrawer() {\r\n await this.drawer.toggle();\r\n this.mapWrapper.resizeMap(this.drawer.opened);\r\n }\r\n isDrawerOpen() {\r\n return this.drawer?.opened ?? true;\r\n }\r\n filterCommercialAircrafts(isCommercialAircraftVisible: boolean) {\r\n this.currentFilters.isCommercialAircraftVisible =\r\n isCommercialAircraftVisible;\r\n this.applyFiltersToData();\r\n }\r\n async onAircraftClick(flightWatch: FlightWatchModelResponse) {\r\n if(!this.drawer.opened){\r\n await this.toggleSettingsDrawer();\r\n }\r\n this.flightwatchAircraftGrid.expandRow(flightWatch.tailNumber);\r\n }\r\n onPopUpClosed(flightWatch: FlightWatchModelResponse) {\r\n this.flightwatchAircraftGrid.collapseAllRows();\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \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 { Subject } from 'rxjs';\r\nimport { Aircraftwatch, FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { FlightWatchService } from 'src/app/services/flightwatch.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FlightWatchMapSharedService {\r\n constructor(private flightWatchService: FlightWatchService) { }\r\n\r\n private aircraftDetailsSubject = new Subject();\r\n aicraftDetails$ = this.aircraftDetailsSubject.asObservable();\r\n\r\n private aicraftCompanyAssignSubject = new Subject();\r\n aicraftCompanyAssign$ = this.aicraftCompanyAssignSubject.asObservable();\r\n\r\n getAndUpdateAircraftWithHistorical(fboId: number, icao: string, data: any) {\r\n let id = data.airportWatchLiveDataId ?? data.swimFlightLegId;\r\n this.flightWatchService.getAircarftLiveDataHistorical(fboId, icao, id).subscribe(response => {\r\n this.aircraftDetailsSubject.next(response);\r\n });\r\n }\r\n updateCustomerAicraftData(data: Aircraftwatch) : void{\r\n this.aicraftCompanyAssignSubject.next(data);\r\n }\r\n}\r\n","import { Component, OnInit, Input, ViewEncapsulation, ViewChild, SimpleChanges } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { ServicesAndFeesResponse } from 'src/app/models/services-and-fees/services-and-fees';\r\nimport { DeleteConfirmationComponent } from 'src/app/shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { ServiceOrderService } from '../../../services/serviceorder.service';\r\nimport { ServiceOrder } from '../../../models/service-order';\r\nimport { Output } from '@angular/core';\r\nimport { EventEmitter } from '@angular/core';\r\nimport { EntityResponseMessage } from '../../../models/entity-response-message';\r\nimport * as moment from 'moment';\r\nimport { ServiceOrderItem } from '../../../models/service-order-item';\r\nimport { ServiceOrderAppliedDateTypes } from '../../../enums/service-order-applied-date-types';\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\nimport { FuelreqsNotesComponent } from '../fuelreqs-notes/fuelreqs-notes.component';\r\n\r\ninterface ServicesAndFeesGridItem extends ServicesAndFeesResponse {\r\n isEditMode: boolean,\r\n isNewItem: boolean,\r\n editedValue: string,\r\n isSaving: boolean\r\n}\r\n@Component({\r\n selector: 'app-fuelreqs-grid-services',\r\n templateUrl: './fuelreqs-grid-services.component.html',\r\n styleUrls: [ './fuelreqs-grid-services.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class FuelreqsGridServicesComponent implements OnInit {\r\n @Input() public serviceOrderItems: ServiceOrderItem[];\r\n @Input() public serviceOrderId: number | null = null;\r\n @Input() public associatedFuelOrderId: number | null = null;\r\n @Input() public fuelerlinxTransactionId: number | null = null;\r\n @Input() public servicesAndFees: any[];\r\n @Input() public tailNumber: string;\r\n @Input() public customerId: number;\r\n @Input() public customer: string;\r\n @Output() completedServicesChanged: EventEmitter = new EventEmitter();\r\n @Output() totalServicesChanged: EventEmitter = new EventEmitter();\r\n @Output() toggleDrawerChanged: EventEmitter = new EventEmitter();\r\n @ViewChild(FuelreqsNotesComponent, { static: true }) fuelReqNotesComponent: FuelreqsNotesComponent;\r\n\r\n public newServiceOrderItem: ServiceOrderItem;\r\n fuelreqsServicesAndFeesGridDisplay: ServiceOrderItem[] = [];\r\n isLoading: boolean = true;\r\n serviceOrder: any;\r\n hasNotes: boolean = false;\r\n servicesAndFeesOptions: string[];\r\n\r\n constructor(\r\n private serviceOrderService: ServiceOrderService,\r\n private sharedService: SharedService,\r\n private dialog: MatDialog,\r\n private fuelReqsService: FuelreqsService\r\n ) { }\r\n\r\n async ngOnInit() {\r\n this.refreshGrid();\r\n this.servicesAndFeesOptions = this.servicesAndFees.map(s => s.service);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.serviceOrderItems) {\r\n this.generateTooltips(this.serviceOrderItems);\r\n\r\n }\r\n }\r\n onArchiveServices(serviceOrderItems: ServiceOrderItem[]) {\r\n this.fuelreqsServicesAndFeesGridDisplay = serviceOrderItems.filter((s) => s.serviceName != '' && !s.serviceName.includes(\"Fuel\"));\r\n\r\n this.sortGrid();\r\n\r\n var fuelServiceItem = this.serviceOrderItems.find(s => s.serviceName.includes(\"Fuel\"));\r\n if (fuelServiceItem != null)\r\n this.fuelreqsServicesAndFeesGridDisplay.unshift(fuelServiceItem);\r\n\r\n var isCompleted = this.fuelreqsServicesAndFeesGridDisplay[0].isCompleted;\r\n if (isCompleted)\r\n this.completedServicesChanged.emit(this.fuelreqsServicesAndFeesGridDisplay.length);\r\n else\r\n this.completedServicesChanged.emit(0);\r\n\r\n this.resetNewServiceOrderItem();\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.newServiceOrderItem);\r\n\r\n serviceOrderItems.forEach((serviceOrderItem) => {\r\n if (serviceOrderItem.serviceName != \"\")\r\n this.updateCompletedFlag(serviceOrderItem, true);\r\n });\r\n }\r\n\r\n onAddServiceChanged(serviceOrderItem: ServiceOrderItem, changed: any): void {\r\n serviceOrderItem.serviceName = changed;\r\n }\r\n\r\n add(serviceOrderItem: ServiceOrderItem): void {\r\n serviceOrderItem.isAdding = true;\r\n serviceOrderItem.addedByUserId = this.sharedService.currentUser.oid;\r\n serviceOrderItem.addedByName = this.sharedService.currentUser.firstName + ' ' + this.sharedService.currentUser.lastName;\r\n\r\n if (serviceOrderItem.serviceOrderId == 0) {\r\n var fuelOrderId = 0;\r\n\r\n if (this.fuelerlinxTransactionId == 0) {\r\n fuelOrderId = this.associatedFuelOrderId;\r\n\r\n this.fuelReqsService.get(fuelOrderId).subscribe((fuelReq: any) => {\r\n if (fuelReq != undefined) {\r\n this.createServiceOrder(fuelReq, serviceOrderItem);\r\n }\r\n });\r\n }\r\n else {\r\n fuelOrderId = this.fuelerlinxTransactionId;\r\n\r\n this.fuelReqsService.getBySourceId(fuelOrderId, this.sharedService.currentUser.fboId).subscribe((fuelReq: any) => {\r\n if (fuelReq != undefined) {\r\n this.createServiceOrder(fuelReq, serviceOrderItem);\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.serviceOrderService.createServiceOrderItem(serviceOrderItem).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error saving service order item: ' + response.message);\r\n else {\r\n serviceOrderItem.isAddMode = false;\r\n serviceOrderItem.isAdding = false;\r\n serviceOrderItem.oid = response.result.oid;\r\n\r\n this.sortGrid();\r\n\r\n this.resetNewServiceOrderItem();\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.newServiceOrderItem);\r\n\r\n let updatedList = {\r\n fuelreqsServicesAndFeesGridDisplay: this.fuelreqsServicesAndFeesGridDisplay,\r\n value: 1\r\n }\r\n this.totalServicesChanged.emit(updatedList);\r\n }\r\n });\r\n }\r\n }\r\n\r\n cancelEdit(service: ServiceOrderItem):void{\r\n service.isEditMode = false;\r\n }\r\n\r\n updateCompletedFlag(serviceAndfee: ServiceOrderItem, isArchiving: boolean = false): void {\r\n var numberCompleted = 0;\r\n if (serviceAndfee.isCompleted) {\r\n serviceAndfee.completionDateTimeUtc = moment.utc().toDate();\r\n serviceAndfee.completedByUserId = this.sharedService.currentUser.oid;\r\n serviceAndfee.completedByName = this.sharedService.currentUser.firstName + ' ' + this.sharedService.currentUser.lastName;\r\n numberCompleted = 1;\r\n }\r\n else if (!isArchiving)\r\n numberCompleted = -1;\r\n\r\n if (!isArchiving) {\r\n var serviceOrderItems = this.fuelreqsServicesAndFeesGridDisplay;\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay = this.fuelreqsServicesAndFeesGridDisplay.filter((s) => s.serviceName != '' && !s.serviceName.includes(\"Fuel\"));\r\n\r\n this.sortGrid();\r\n\r\n var fuelServiceItem = serviceOrderItems.find(s => s.serviceName.includes(\"Fuel\"));\r\n if (fuelServiceItem != null)\r\n this.fuelreqsServicesAndFeesGridDisplay.unshift(fuelServiceItem);\r\n\r\n var addInProgressIndex = this.fuelreqsServicesAndFeesGridDisplay.findIndex(f => f.isAddMode && f.serviceName != null);\r\n if (addInProgressIndex < 0) {\r\n this.resetNewServiceOrderItem();\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.newServiceOrderItem);\r\n }\r\n else\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.fuelreqsServicesAndFeesGridDisplay.splice(addInProgressIndex, 1)[0]);\r\n\r\n if (!isArchiving) {\r\n let updatedList = {\r\n fuelreqsServicesAndFeesGridDisplay: this.fuelreqsServicesAndFeesGridDisplay,\r\n value: numberCompleted\r\n }\r\n this.completedServicesChanged.emit(updatedList);\r\n }\r\n }\r\n\r\n this.saveServiceOrderItem(serviceAndfee);\r\n }\r\n\r\n updateServiceName(serviceAndfee: ServiceOrderItem): void {\r\n this.saveServiceOrderItem(serviceAndfee);\r\n }\r\n\r\n toogleEditModel(item: ServiceOrderItem, itemList: ServiceOrderItem[] = []): void {\r\n item.isEditMode = !item.isEditMode;\r\n }\r\n\r\n deleteItem(serviceAndfee: ServiceOrderItem, serviceName: string): void {\r\n const dialogRef = this.dialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: serviceName + ' from this order', item: serviceAndfee, includeThis: false },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((serviceAndfee) => {\r\n if (!serviceAndfee) {\r\n return;\r\n }\r\n this.serviceOrderService.deleteServiceOrderItem(serviceAndfee.item.oid).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error deleting service order item: ' + response.message);\r\n else {\r\n this.fuelreqsServicesAndFeesGridDisplay = this.fuelreqsServicesAndFeesGridDisplay.filter(f => f.serviceName != \"\");\r\n this.fuelreqsServicesAndFeesGridDisplay.splice(this.fuelreqsServicesAndFeesGridDisplay.indexOf(serviceAndfee.item), 1);\r\n\r\n this.resetNewServiceOrderItem();\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.newServiceOrderItem);\r\n\r\n let updatedList = {\r\n fuelreqsServicesAndFeesGridDisplay: this.fuelreqsServicesAndFeesGridDisplay,\r\n value: -1\r\n }\r\n this.totalServicesChanged.emit(updatedList);\r\n }\r\n });\r\n });\r\n }\r\n generateTooltips(serviceAndFees: ServiceOrderItem[]){\r\n\r\n serviceAndFees?.forEach(element => {\r\n element.toolTipText = this.getInfoTooltipText(element);\r\n });\r\n }\r\n getInfoTooltipText(serviceAndFees: ServiceOrderItem): string {\r\n var service = this.servicesAndFees.find(s => s.service === serviceAndFees.serviceName);\r\n if (service != null && service != undefined) {\r\n if (!service.isCustom)\r\n return `Source: FuelerLinx Database`;\r\n else\r\n return `Source: ` + service.createdByUser;\r\n }\r\n else if (serviceAndFees.addedByName != null)\r\n return `Source: ` + serviceAndFees.addedByName;\r\n }\r\n\r\n toggleNotesDrawer(isDrawerManuallyClicked: boolean = false) {\r\n let drawerProperties = { serviceOrderId: this.serviceOrderId, associatedFuelOrderId: this.associatedFuelOrderId, fuelerLinxTransactionId: this.fuelerlinxTransactionId, tailNumber: this.tailNumber, customerId: this.customerId, customer: this.customer, isDrawerManuallyClicked: isDrawerManuallyClicked };\r\n this.toggleDrawerChanged.emit(drawerProperties);\r\n }\r\n\r\n private createServiceOrder(fuelReq: any, serviceOrderItem: ServiceOrderItem) {\r\n var newServiceOrder: ServiceOrder = {\r\n oid: 0,\r\n fboId: this.sharedService.currentUser.fboId,\r\n serviceOrderItems: [],\r\n arrivalDateTimeUtc: moment(fuelReq.eta).toDate(),\r\n arrivalDateTimeLocal: null,\r\n departureDateTimeUtc: moment(fuelReq.etd).toDate(),\r\n departureDateTimeLocal: null,\r\n groupId: this.sharedService.currentUser.groupId,\r\n customerInfoByGroupId: 0,\r\n customerAircraftId: fuelReq.customerAircraftId,\r\n associatedFuelOrderId: this.associatedFuelOrderId,\r\n FuelerLinxTransactionId: this.fuelerlinxTransactionId,\r\n serviceOn: fuelReq.FuelOn == \"Departure\" ? ServiceOrderAppliedDateTypes.Departure : ServiceOrderAppliedDateTypes.Arrival,\r\n serviceDateTimeUtc: fuelReq.FuelOn == \"Departure\" ? moment(fuelReq.etd).toDate() : moment(fuelReq.eta).toDate(),\r\n numberOfCompletedItems: 0,\r\n isCompleted: false,\r\n customerInfoByGroup: null,\r\n customerAircraft: null,\r\n numberOfTotalServices: 0,\r\n isActive: false\r\n }\r\n\r\n this.serviceOrderService.createServiceOrder(newServiceOrder).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error creating service order: ' + response.message);\r\n else {\r\n serviceOrderItem.serviceOrderId = response.result.oid;\r\n this.serviceOrderService.createServiceOrderItem(serviceOrderItem).subscribe((responseItem: EntityResponseMessage) => {\r\n if (!responseItem.success)\r\n alert('Error saving service order item: ' + responseItem.message);\r\n else {\r\n serviceOrderItem.isAddMode = false;\r\n serviceOrderItem.isAdding = false;\r\n serviceOrderItem.oid = responseItem.result.oid;\r\n\r\n this.sortGrid();\r\n\r\n this.resetNewServiceOrderItem();\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.newServiceOrderItem);\r\n\r\n let updatedList = {\r\n fuelreqsServicesAndFeesGridDisplay: this.fuelreqsServicesAndFeesGridDisplay,\r\n value: 1\r\n }\r\n this.totalServicesChanged.emit(updatedList);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n private saveServiceOrderItem(serviceOrderItem: ServiceOrderItem) {\r\n serviceOrderItem.isEditMode = false;\r\n\r\n\r\n this.serviceOrderService.updateServiceOrderItem(serviceOrderItem).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error saving service order item: ' + response.message);\r\n });\r\n }\r\n\r\n private resetNewServiceOrderItem() {\r\n this.newServiceOrderItem = { oid: 0, serviceName: '', serviceOrderId: (this.serviceOrderId == undefined || this.serviceOrderId == null ? 0 : this.serviceOrderId), quantity: 1, isCompleted: false, completionDateTimeUtc: null, isEditMode: false, isAddMode: true, isAdding: false,toolTipText: '' };\r\n }\r\n\r\n private sortGrid() {\r\n this.fuelreqsServicesAndFeesGridDisplay.sort(((a, b) => {\r\n return a.isCompleted && a.serviceName != '' ? 1 : -1 // `false` values first\r\n }));\r\n }\r\n\r\n private refreshGrid() {\r\n this.generateTooltips(this.serviceOrderItems);\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay = this.serviceOrderItems.filter(s => s.serviceName != \"\" && !s.serviceName.includes(\"Fuel\"));\r\n\r\n this.sortGrid();\r\n\r\n var fuelServiceItem = this.serviceOrderItems.find(s => s.serviceName.includes(\"Fuel\"));\r\n if (fuelServiceItem != null)\r\n this.fuelreqsServicesAndFeesGridDisplay.unshift(fuelServiceItem);\r\n\r\n this.resetNewServiceOrderItem();\r\n\r\n var addInProgressIndex = this.fuelreqsServicesAndFeesGridDisplay.findIndex(f => f.isAddMode && f.serviceName != null);\r\n if (addInProgressIndex < 0) {\r\n this.resetNewServiceOrderItem();\r\n\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.newServiceOrderItem);\r\n }\r\n else\r\n this.fuelreqsServicesAndFeesGridDisplay.push(this.fuelreqsServicesAndFeesGridDisplay.splice(addInProgressIndex, 1)[0]);\r\n\r\n this.toggleNotesDrawer();\r\n\r\n this.isLoading = false;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{{service.serviceName}}
\r\n
{{service.serviceName}}
\r\n
\r\n
\r\n
{{service.serviceName}}
\r\n
{{service.serviceName}}
\r\n
\r\n
\r\n edit\r\n delete\r\n 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","import { trigger, state, style } from '@angular/animations';\r\nimport { DatePipe } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatRow, MatTableDataSource } from '@angular/material/table';\r\nimport { isEqual } from 'lodash';\r\nimport { csvFileOptions, GridBase } from 'src/app/services/tables/GridBase';\r\nimport { MatDrawer } from '@angular/material/sidenav';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Shared components\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport { FuelreqsService } from 'src/app/services/fuelreqs.service';\r\nimport { SnackBarService } from 'src/app/services/utils/snackBar.service';\r\nimport { ServiceOrder } from '../../../models/service-order';\r\nimport { ServiceOrdersDialogNewComponent } from '../../service-orders/service-orders-dialog-new/service-orders-dialog-new.component';\r\nimport { ServiceOrderAppliedDateTypes } from '../../../enums/service-order-applied-date-types';\r\nimport { FuelReq } from '../../../models/fuelreq';\r\nimport { ServiceOrderService } from '../../../services/serviceorder.service';\r\nimport { EntityResponseMessage } from '../../../models/entity-response-message';\r\nimport { ProceedConfirmationComponent } from '../../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\nimport { FuelreqsGridServicesComponent } from '../fuelreqs-grid-services/fuelreqs-grid-services.component';\r\nimport { ServiceOrderItem } from '../../../models/service-order-item';\r\nimport * as moment from 'moment';\r\nimport { CurrencyPresicionPipe } from 'src/app/shared/pipes/decimal/currencyPresicion.pipe';\r\nimport { Subscription } from 'rxjs';\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'archivedCheckbox',\r\n name: 'Archived',\r\n },\r\n {\r\n id: 'tailNumber',\r\n name: 'Tail #',\r\n },\r\n {\r\n id: 'customerName',\r\n name: 'Flight Dept.',\r\n },\r\n {\r\n id: 'eta',\r\n name: 'ETA',\r\n sort: 'desc',\r\n },\r\n {\r\n id: 'paymentMethod',\r\n name: 'Payment Method',\r\n },\r\n\r\n {\r\n id: 'quotedPpg',\r\n name: 'PPG',\r\n },\r\n {\r\n id: 'etd',\r\n name: 'ETD',\r\n },\r\n\r\n //SERVICES COMPLETED\r\n {\r\n id: 'services',\r\n name: 'Services',\r\n },\r\n {\r\n id: 'source',\r\n name: 'Source',\r\n },\r\n {\r\n id: 'email',\r\n name: 'Email',\r\n },\r\n {\r\n id: 'oid',\r\n name: 'ID',\r\n hidden: true\r\n },\r\n {\r\n id: 'fuelerlinxid',\r\n name: 'FuelerLinx ID',\r\n hidden: true\r\n },\r\n {\r\n id: 'created',\r\n name: 'Created',\r\n hidden: true\r\n }\r\n];\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'app-fuelreqs-grid',\r\n styleUrls: ['./fuelreqs-grid.component.scss'],\r\n templateUrl: './fuelreqs-grid.component.html',\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed, void', style({ height: '0px', minHeight: '0', display: 'none' })),\r\n state('expanded', style({ height: '*' }))\r\n ])\r\n ]\r\n})\r\nexport class FuelreqsGridComponent extends GridBase implements OnInit, OnChanges {\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(FuelreqsGridServicesComponent, { static: true }) fuelReqGridServicesComponent: FuelreqsGridServicesComponent;\r\n\r\n @ViewChildren(MatRow, { read: ElementRef }) rows!: QueryList>;\r\n @Output() dateFilterChanged = new EventEmitter();\r\n @Input() fuelreqsData: any[];\r\n @Input() filterStartDate: Date;\r\n @Input() filterEndDate: Date;\r\n @Input() servicesAndFees: any[];\r\n @ViewChild('orderNotes') public drawer: MatDrawer;\r\n @Output() onArchivedChange = new EventEmitter();\r\n\r\n public serviceOrderId: number | null = null;\r\n public associatedFuelOrderId: number | null = null;\r\n public fuelerlinxTransactionId: number | null = null;\r\n public tailNumber: string;\r\n public customerId: number;\r\n public customer: string;\r\n public isDrawerOpenedByDefault: boolean = false;\r\n public isDrawerManuallyClicked: boolean = false;\r\n test: any;\r\n\r\n tableLocalStorageKey = 'fuel-req-table-settings';\r\n\r\n fuelreqsDataSource: MatTableDataSource = null;\r\n resultsLength = 0;\r\n columns: ColumnType[] = [];\r\n\r\n dashboardSettings: any;\r\n\r\n csvFileOptions: csvFileOptions = { fileName: 'FuelOrders', sheetName: 'Fuel Orders' };\r\n\r\n allColumnsToDisplay: string[];\r\n\r\n expandedElement: any[] = [];\r\n\r\n isConfirmedLoadingDictionary: { [key: string]: boolean; } = {};\r\n //openedNotes: any[] = [];\r\n previouslyOpenedOrder: string = \"\";\r\n //currentElementId: string = \"\";\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private sharedService: SharedService,\r\n private tableSettingsDialog: MatDialog,\r\n private datePipe: DatePipe,\r\n private currencyPresicion: CurrencyPresicionPipe,\r\n private fuelreqsService: FuelreqsService,\r\n private snackBarService: SnackBarService,\r\n private newServiceOrderDialog: MatDialog,\r\n private serviceOrderService: ServiceOrderService,\r\n private templateDialog: MatDialog,\r\n private ref: ChangeDetectorRef\r\n ) {\r\n super();\r\n this.dashboardSettings = this.sharedService.dashboardSettings;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n var searchFilter = localStorage.getItem(\"fuel-orders-filters\");\r\n if (\r\n (searchFilter == null || searchFilter == '') &&\r\n changes.fuelreqsData &&\r\n !isEqual(\r\n changes.fuelreqsData.currentValue,\r\n changes.fuelreqsData.previousValue\r\n )\r\n ) {\r\n this.allColumnsToDisplay = this.getVisibleColumns();\r\n this.refreshTable();\r\n }\r\n }\r\n\r\n async ngOnInit() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n\r\n this.saveSettings();\r\n this.paginator.pageIndex = 0;\r\n });\r\n\r\n if (localStorage.getItem('pageIndexFuelReqs')) {\r\n this.paginator.pageIndex = localStorage.getItem(\r\n 'pageIndexFuelReqs'\r\n ) as any;\r\n } else {\r\n this.paginator.pageIndex = 0;\r\n }\r\n\r\n this.columns = this.getClientSavedColumns(this.tableLocalStorageKey, initialColumns);\r\n\r\n this.allColumnsToDisplay = this.getVisibleColumns();\r\n\r\n this.refreshTable();\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n getVisibleDataColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => {\r\n if(column.id == 'customer')\r\n return 'customerName'\r\n return column.id\r\n }) || [];\r\n }\r\n getVisibleColumns() {\r\n var result = ['expand-icon'];\r\n result.push(...\r\n this.getVisibleDataColumns()\r\n );\r\n result.push('receivedConfirmationButton');\r\n return result;\r\n }\r\n\r\n refreshTable() {\r\n let filter = '';\r\n if (this.fuelreqsDataSource) {\r\n filter = this.fuelreqsDataSource.filter;\r\n }\r\n this.fuelreqsDataSource = new MatTableDataSource(this.fuelreqsData);\r\n this.fuelreqsDataSource.sort = this.sort;\r\n this.fuelreqsDataSource.paginator = this.paginator;\r\n this.fuelreqsDataSource.filter = filter;\r\n this.resultsLength = this.fuelreqsData.length;\r\n\r\n this.refreshSort();\r\n\r\n this.setVirtualScrollVariables(this.paginator, this.sort, this.fuelreqsDataSource.data);\r\n }\r\n\r\n refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.fuelreqsDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n applyDateFilterChange() {\r\n this.dateFilterChanged.emit({\r\n filterEndDate: this.filterEndDate,\r\n filterStartDate: this.filterStartDate,\r\n });\r\n }\r\n\r\n exportCsv() {\r\n let computePropertyFnc = (item: any[], id: string): any => {\r\n if(id == \"eta\" || id == \"etd\" || id == \"dateCreated\")\r\n return this.datePipe.transform(item[id]);\r\n else if(id == \"quotedPpg\")\r\n return this.getPPGDisplayString(item);\r\n else\r\n return null;\r\n }\r\n this.exportCsvFile(this.columns,this.csvFileOptions.fileName,this.csvFileOptions.sheetName,computePropertyFnc);\r\n }\r\n getPPGDisplayString(fuelreq: any): any{\r\n return fuelreq.source == 'FuelerLinx' || fuelreq.source == ''\r\n ? this.currencyPresicion.transform(fuelreq.quotedPpg)\r\n : \"CONFIDENTIAL\";\r\n }\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.refreshSort();\r\n this.saveSettings();\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n getNoDataToDisplayString(){\r\n return\"No Fuel Request set on the selected range of dates\";\r\n }\r\n isRowExpanded(elementId: any){\r\n return this.expandedElement.includes(elementId);\r\n }\r\n toogleExpandedRows(elementId: any) {\r\n if(this.isRowExpanded(elementId)){\r\n //this.expandedElement = this.expandedElement.filter(function (item) {\r\n // return item !== elementId\r\n //});\r\n this.expandedElement = [];\r\n\r\n this.previouslyOpenedOrder = elementId;\r\n\r\n this.toggleClosedNotesDrawer();\r\n } else {\r\n if (this.expandedElement.length > 0)\r\n this.expandedElement = [];\r\n\r\n this.expandedElement.push(elementId);\r\n\r\n if (this.previouslyOpenedOrder != \"\" && this.previouslyOpenedOrder == elementId)\r\n this.isDrawerManuallyClicked = true;\r\n\r\n //this.currentElementId = elementId;\r\n }\r\n }\r\n\r\n sendConfirmationNotification(event: Event, fuelreq: any): void{\r\n event.stopPropagation();\r\n\r\n var serviceItems = [];\r\n var fuelService = fuelreq.serviceOrder.serviceOrderItems.find(f => f.serviceName.indexOf(\"Fuel: \") > -1);\r\n fuelreq.serviceOrder.serviceOrderItems = fuelreq.serviceOrder.serviceOrderItems.filter(f => f.serviceName.indexOf(\"Fuel: \") == -1);\r\n fuelreq.serviceOrder.serviceOrderItems.sort((a, b) => a.serviceName.localeCompare(b.serviceName));\r\n fuelreq.serviceOrder.serviceOrderItems.unshift(fuelService);\r\n fuelreq.serviceOrder.serviceOrderItems.forEach((serviceOrderItem) => {\r\n serviceItems.push(\"\" + serviceOrderItem.serviceName + (serviceOrderItem.serviceDescription == undefined? \"\" : \": \" + serviceOrderItem.serviceDescription));\r\n });\r\n\r\n const dialogRef = this.templateDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Confirm',\r\n title: 'Confirmation Required',\r\n description: 'You are about to send a confirmation email to the flight department regarding the requested service order. Please review the details below carefully:',\r\n listItemsList: serviceItems,\r\n additionalInfo: 'If everything appears accurate, click the “Confirm” button below. Otherwise, click “Cancel” to make any necessary adjustments.',\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.isConfirmedLoadingDictionary[fuelreq.sourceId] = true;\r\n\r\n this.fuelreqsService.sendOrderConfirmationNotification(fuelreq).subscribe(response => {\r\n fuelreq.isConfirmed = true;\r\n this.isConfirmedLoadingDictionary[fuelreq.sourceId] = false;\r\n this.snackBarService.showSuccessSnackBar(\"Confirmation Sent\");\r\n }, error => {\r\n this.isConfirmedLoadingDictionary[fuelreq.sourceId] = false;\r\n console.log(error);\r\n this.snackBarService.showErrorSnackBar(\"Error sending confirmation try again later\");\r\n });\r\n });\r\n }\r\n\r\n isLoadignConfirmationButton(fuelreq: any): boolean{\r\n return this.isConfirmedLoadingDictionary[fuelreq.sourceId];\r\n }\r\n getConfirmationButtonText(fuelreq: any): string{\r\n return this.isLoadignConfirmationButton(fuelreq) ? \"\" :\r\n fuelreq.isConfirmed ? \"Confirmation Sent\" : \"Send Confirmation\"\r\n }\r\n\r\n public addServiceOrderClicked() {\r\n var newServiceOrder: ServiceOrder = {\r\n oid: 0,\r\n fboId: this.sharedService.currentUser.fboId,\r\n serviceOrderItems: [],\r\n arrivalDateTimeUtc: null,\r\n arrivalDateTimeLocal: null,\r\n departureDateTimeUtc: null,\r\n departureDateTimeLocal: null,\r\n groupId: this.sharedService.currentUser.groupId,\r\n customerInfoByGroupId: 0,\r\n customerAircraftId: 0,\r\n associatedFuelOrderId: 0,\r\n serviceOn: ServiceOrderAppliedDateTypes.Arrival,\r\n numberOfCompletedItems: 0,\r\n isCompleted: false,\r\n customerInfoByGroup: null,\r\n customerAircraft: null,\r\n numberOfTotalServices: 0,\r\n isActive: false\r\n };\r\n const config: MatDialogConfig = {\r\n disableClose: true,\r\n data: newServiceOrder,\r\n autoFocus: false,\r\n maxWidth: '510px'\r\n };\r\n\r\n const dialogRef = this.newServiceOrderDialog.open(ServiceOrdersDialogNewComponent, config);\r\n\r\n\r\n dialogRef.afterClosed().subscribe((result: FuelReq) => {\r\n if (!result)\r\n return;\r\n result.serviceOrder = newServiceOrder;\r\n this.fuelreqsData.push(result);\r\n this.dataSource.data.push(result);\r\n this.dataSource._updateChangeSubscription();\r\n var changes = { serviceOrderId: result.serviceOrder.oid, associatedFuelOrderId: result.oid, fuelerLinxTransactionId: 0, tailNumber: result.tailNumber, customerId: result.customerId, customer: result.customerName, isDrawerManuallyClicked: false };\r\n this.updateChanges(changes);\r\n\r\n setTimeout(() => {\r\n if (result.oid > 0)\r\n this.scrollToIndex(result.oid);\r\n }, 100);\r\n this.toogleExpandedRows((result.sourceId == undefined ? 0 : result.sourceId).toString() + \"|\" + result.oid.toString() + \"|0|\" + this.tailNumber + '|' + this.customerId + '|' + this.customer)\r\n });\r\n }\r\n\r\n public updateArchivedFlag(event: Event, fuelReq: FuelReq) {\r\n if (fuelReq.archived) {\r\n const dialogRef = this.templateDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Yes, Close & Archive',\r\n title: 'Are you sure you want to mark each item in this order as complete and archive it?',\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n fuelReq.archived = false;\r\n this.ref.detectChanges();\r\n return;\r\n }\r\n\r\n fuelReq.serviceOrder.numberOfCompletedItems = fuelReq.serviceOrder.serviceOrderItems.length - 1;\r\n\r\n fuelReq.serviceOrder.serviceOrderItems.forEach((serviceOrderItem) => {\r\n if (serviceOrderItem.serviceName != \"\")\r\n serviceOrderItem.isCompleted = true;\r\n })\r\n\r\n if (this.fuelReqGridServicesComponent != null)\r\n this.fuelReqGridServicesComponent.onArchiveServices(fuelReq.serviceOrder.serviceOrderItems);\r\n else {\r\n this.saveServiceOrderItems(fuelReq.serviceOrder.serviceOrderItems);\r\n this.completedServicesChanged(fuelReq, fuelReq.serviceOrder.serviceOrderItems.length)\r\n }\r\n\r\n var serviceOrderItems = fuelReq.serviceOrder.serviceOrderItems;\r\n fuelReq.serviceOrder.serviceOrderItems = null;\r\n\r\n this.fuelreqsService.updateArchived(fuelReq).subscribe(response => {\r\n fuelReq.serviceOrder.serviceOrderItems = serviceOrderItems;\r\n });\r\n this.ref.detectChanges();\r\n });\r\n }\r\n else {\r\n fuelReq.serviceOrder.numberOfCompletedItems = 0;\r\n\r\n fuelReq.serviceOrder.serviceOrderItems.forEach((serviceOrderItem) => {\r\n if (serviceOrderItem.serviceName != \"\")\r\n serviceOrderItem.isCompleted = false;\r\n })\r\n\r\n if (this.fuelReqGridServicesComponent != null)\r\n this.fuelReqGridServicesComponent.onArchiveServices(fuelReq.serviceOrder.serviceOrderItems);\r\n else {\r\n this.completedServicesChanged(fuelReq, 0);\r\n this.saveServiceOrderItems(fuelReq.serviceOrder.serviceOrderItems);\r\n }\r\n\r\n var serviceOrderItems = fuelReq.serviceOrder.serviceOrderItems;\r\n fuelReq.serviceOrder.serviceOrderItems = null;\r\n\r\n this.fuelreqsService.updateArchived(fuelReq).subscribe(response => {\r\n fuelReq.serviceOrder.serviceOrderItems = serviceOrderItems;\r\n });\r\n this.ref.detectChanges();\r\n }\r\n }\r\n\r\n completedServicesChanged(fuelReq: FuelReq, changes: any) {\r\n let value = changes?.value ?? changes;\r\n if (fuelReq.serviceOrder.numberOfTotalServices == value){\r\n fuelReq.serviceOrder.numberOfCompletedItems = value;\r\n fuelReq.archived = true;\r\n }\r\n else {\r\n if (value> 0)\r\n fuelReq.serviceOrder.numberOfCompletedItems++;\r\n else if (value < 0)\r\n fuelReq.serviceOrder.numberOfCompletedItems--;\r\n else {\r\n fuelReq.serviceOrder.numberOfCompletedItems = 0;\r\n }\r\n }\r\n\r\n if (fuelReq.serviceOrder.numberOfCompletedItems == 0) {\r\n fuelReq.serviceOrder.isActive = false;\r\n fuelReq.serviceOrder.isCompleted = false;\r\n fuelReq.archived = false;\r\n }\r\n else if (fuelReq.serviceOrder.numberOfCompletedItems == 1 && fuelReq.serviceOrder.numberOfTotalServices > 1) {\r\n fuelReq.serviceOrder.isActive = true;\r\n fuelReq.serviceOrder.isCompleted = false;\r\n fuelReq.archived = false;\r\n }\r\n else if (fuelReq.serviceOrder.numberOfCompletedItems == fuelReq.serviceOrder.numberOfTotalServices) {\r\n fuelReq.serviceOrder.isCompleted = true;\r\n fuelReq.serviceOrder.isActive = false;\r\n fuelReq.archived = true;\r\n\r\n }\r\n else {\r\n fuelReq.serviceOrder.isCompleted = false;\r\n fuelReq.serviceOrder.isActive = true;\r\n fuelReq.archived = false;\r\n\r\n }\r\n\r\n if (changes.fuelreqsServicesAndFeesGridDisplay != null)\r\n fuelReq.serviceOrder.serviceOrderItems = changes.fuelreqsServicesAndFeesGridDisplay.filter(f => f.serviceName != '');\r\n\r\n this.fuelreqsService.updateArchived(fuelReq).subscribe(response => {\r\n });\r\n }\r\n\r\n totalServicesChanged(fuelReq: FuelReq, changes: any) {\r\n fuelReq.serviceOrder.numberOfTotalServices += changes.value;\r\n if (changes.fuelreqsServicesAndFeesGridDisplay != null)\r\n fuelReq.serviceOrder.serviceOrderItems = changes.fuelreqsServicesAndFeesGridDisplay.filter(f => f.serviceName != '');\r\n }\r\n\r\n openByDefault(isOpenByDefault: any) {\r\n this.isDrawerOpenedByDefault = isOpenByDefault;\r\n //if (isOpenByDefault && !this.openedNotes.includes(this.expandedElement[this.expandedElement.length - 1]))\r\n // this.openedNotes.push(this.expandedElement[this.expandedElement.length - 1]);\r\n this.toggleOpenNotesDrawer();\r\n }\r\n\r\n async toggleDrawerChanged(changes: any) {\r\n if (this.isDrawerOpenedByDefault && this.drawer.opened) {\r\n var elementId= changes.serviceOrderId + \"|\" + changes.associatedFuelOrderId + \"|\" + changes.fuelerLinxTransactionId + \"|\" + changes.tailNumber + \"|\" + changes.customerId + \"|\" + changes.customer;\r\n this.toggleClosedNotesDrawer();\r\n await this.sleep(100);\r\n }\r\n\r\n this.updateChanges(changes);\r\n\r\n if (this.isDrawerManuallyClicked) {\r\n //await this.sleep(10);\r\n this.toggleOpenNotesDrawer();\r\n }\r\n }\r\n\r\n updateChanges(changes: any) {\r\n this.serviceOrderId = changes.serviceOrderId;\r\n this.associatedFuelOrderId = changes.associatedFuelOrderId;\r\n this.fuelerlinxTransactionId = changes.fuelerLinxTransactionId;\r\n this.tailNumber = changes.tailNumber;\r\n this.customerId = changes.customerId;\r\n this.customer = changes.customer;\r\n this.isDrawerManuallyClicked = changes.isDrawerManuallyClicked;\r\n }\r\n\r\n async toggleOpenNotesDrawer() {\r\n if (this.drawer != undefined) {\r\n if (this.isDrawerOpenedByDefault || this.isDrawerManuallyClicked) {\r\n this.drawer.open().then((sidenavIsOpen) => {\r\n this.test = sidenavIsOpen\r\n })\r\n }\r\n //else {\r\n // this.toggleClosedNotesDrawer(this.currentElementId);\r\n //}\r\n }\r\n }\r\n\r\n sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n async toggleClosedNotesDrawer() {//elementId: string, isManuallyClosed: boolean = false\r\n this.drawer.close();\r\n\r\n //if (isManuallyClosed && this.openedNotes.length > 0) {\r\n // if (this.openedNotes.length > 0) {\r\n // const index = this.openedNotes.indexOf(elementId);\r\n // if (index === -1) {\r\n // // the task doesn't exist in the array, no need to continue\r\n // return;\r\n // }\r\n\r\n // // delete 1 item starting at the given index\r\n // this.openedNotes.splice(index, 1);\r\n\r\n // if (this.openedNotes.length > 0) {\r\n // var lastOrder = this.openedNotes[this.openedNotes.length - 1];\r\n // var lastOrderInfo = lastOrder.split(\"|\");\r\n // var changes = { serviceOrderId: lastOrderInfo[0], associatedFuelOrderId: lastOrderInfo[1], fuelerLinxTransactionId: lastOrderInfo[2], tailNumber: lastOrderInfo[3], customerId: lastOrderInfo[4], customer: lastOrderInfo[5], isDrawerManuallyClicked: true };\r\n // this.updateChanges(changes);\r\n // this.drawer.close().then((sidebarNav) => {\r\n // this.test = sidebarNav;\r\n // this.toggleOpenNotesDrawer();\r\n // });\r\n\r\n // }\r\n // }\r\n //}\r\n }\r\n\r\n private scrollToIndex(id: number): void {\r\n let elem = document.getElementById(id.toString());\r\n elem?.scrollIntoView({ block: 'center', behavior: 'smooth'});\r\n }\r\n\r\n private saveServiceOrderItems(serviceOrderItems: ServiceOrderItem[]) {\r\n serviceOrderItems.forEach((serviceOrderItem) => {\r\n if (serviceOrderItem.serviceName != \"\")\r\n\r\n if (serviceOrderItem.isCompleted) {\r\n serviceOrderItem.completionDateTimeUtc = moment.utc().toDate();\r\n serviceOrderItem.completedByUserId = this.sharedService.currentUser.oid;\r\n serviceOrderItem.completedByName = this.sharedService.currentUser.firstName + ' ' + this.sharedService.currentUser.lastName;\r\n }\r\n\r\n this.serviceOrderService.updateServiceOrderItem(serviceOrderItem).subscribe((response: EntityResponseMessage) => {\r\n\r\n });\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n ID\r\n \r\n {{ fuelreq.oid }}\r\n \r\n FuelerLinx ID\r\n \r\n {{ fuelreq.sourceId }}\r\n \r\n Created\r\n \r\n {{ fuelreq.dateCreated | date: \"MMM d, yyyy, HH:mm\" }} {{fuelreq.timeZone}}\r\n \r\n  \r\n \r\n
\r\n \r\n Cancelled\r\n \r\n \r\n Completed\r\n \r\n \r\n Active\r\n \r\n
\r\n \r\n
 \r\n \r\n \r\n \r\n Flight Dept.\r\n \r\n \r\n {{ fuelreq.customerName }}  \r\n \r\n Order Note\r\n \r\n \r\n \r\n \r\n {{ fuelreq.customerName }}  \r\n \r\n Order Note\r\n \r\n \r\n \r\n \r\n Payment Method\r\n \r\n {{fuelreq.paymentMethod}}\r\n {{fuelreq.paymentMethod}}\r\n ETA\r\n {{ fuelreq.eta | date: \"MMM d, yyyy, HH:mm\" }}\r\n {{ fuelreq.eta | date: \"MMM d, yyyy, HH:mm\" }}\r\n\r\n ETD\r\n {{ fuelreq.etd | date: \"MMM d, yyyy, HH:mm\" }}\r\n {{ fuelreq.etd | date: \"MMM d, yyyy, HH:mm\" }}\r\n\r\n PPG\r\n \r\n {{\r\n getPPGDisplayString(fuelreq)\r\n }}\r\n \r\n \r\n \r\n {{\r\n getPPGDisplayString(fuelreq)\r\n }}\r\n \r\n \r\n\r\n \r\n Tail #\r\n \r\n {{ fuelreq.tailNumber }}\r\n {{ fuelreq.tailNumber }}\r\n\r\n \r\n Source\r\n \r\n {{ fuelreq.source }}\r\n {{ fuelreq.source }}\r\n\r\n Email\r\n {{ fuelreq.email }}\r\n {{ fuelreq.email }}\r\n\r\n Services Completed\r\n {{ fuelreq.serviceOrder == null || fuelreq.serviceOrder.numberOfTotalServices == 0 ? 0 : fuelreq.serviceOrder.numberOfCompletedItems }} / {{ fuelreq.serviceOrder == null || fuelreq.serviceOrder.numberOfTotalServices == 0 ? 0 : fuelreq.serviceOrder.numberOfTotalServices }}\r\n {{ fuelreq.serviceOrder == null || fuelreq.serviceOrder.numberOfTotalServices == 0 ? 0 : fuelreq.serviceOrder.numberOfCompletedItems }} / {{ fuelreq.serviceOrder == null || fuelreq.serviceOrder.numberOfTotalServices == 0 ? 0 : fuelreq.serviceOrder.numberOfTotalServices }}\r\n\r\n  \r\n
\r\n \r\n {{ getConfirmationButtonText(fuelreq) }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ getNoDataToDisplayString() }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\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, OnDestroy, OnInit } from '@angular/core';\r\nimport * as _ from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { interval, Subscription } from 'rxjs';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\nimport { ServicesAndFeesService } from '../../../services/servicesandfees.service';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n selector: 'app-fuelreqs-home',\r\n styleUrls: ['./fuelreqs-home.component.scss'],\r\n templateUrl: './fuelreqs-home.component.html',\r\n})\r\nexport class FuelreqsHomeComponent implements OnDestroy, OnInit {\r\n // Public Members\r\n public pageTitle = 'Fuel & Service Orders';\r\n public chartName = \"fuelreqs\";\r\n\r\n public fuelreqsData: any[];\r\n public filterStartDate: Date;\r\n public filterEndDate: Date;\r\n public timer: Subscription;\r\n public isFuelOrdersShowing: boolean = true;\r\n public missedOrdersData: any[];\r\n public resetMissedOrders: boolean = false;\r\n public servicesAndFees: any[] = [];\r\n\r\n constructor(\r\n private fuelReqService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private servicesAndFeesService: ServicesAndFeesService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n \r\n this.filterStartDate = new Date(\r\n moment().add(-30, 'd').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(\r\n moment().add(30, 'd').format('MM/DD/YYYY')\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.stopFuelReqDataServe();\r\n }\r\n\r\n async ngOnInit() {\r\n await this.servicesAndFeesService.getFboServicesAndFees(this.sharedService.currentUser.fboId)\r\n .subscribe((data: any) => {\r\n data.forEach((service) => {\r\n service.servicesAndFees.forEach((serviceAndFee) => {\r\n if (serviceAndFee.isActive)\r\n this.servicesAndFees.push(serviceAndFee);\r\n });\r\n });\r\n });\r\n this.servicesAndFees.sort((a, b) => a.service.localeCompare(b.service));\r\n\r\n this.ngxLoader.startLoader(this.chartName);\r\n await this.loadFuelReqs();\r\n this.ngxLoader.stopLoader(this.chartName);\r\n this.startFuelReqDataServe();\r\n }\r\n\r\n public startFuelReqDataServe() {\r\n this.timer = interval(60000).subscribe(() => {\r\n this.loadFuelReqs();\r\n });\r\n }\r\n\r\n public restartFuelReqDataServe() {\r\n this.stopFuelReqDataServe();\r\n this.startFuelReqDataServe();\r\n }\r\n\r\n public stopFuelReqDataServe() {\r\n if (this.timer) {\r\n this.timer.unsubscribe();\r\n }\r\n }\r\n\r\n public async dateFilterChanged(event): Promise{\r\n this.filterStartDate = event.filterStartDate;\r\n this.filterEndDate = event.filterEndDate;\r\n this.restartFuelReqDataServe();\r\n this.fuelreqsData = null;\r\n this.ngxLoader.startLoader(this.chartName);\r\n await this.loadFuelReqs();\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n\r\n // PRIVATE METHODS\r\n private async loadFuelReqs(): Promise{\r\n let data = await this.fuelReqService\r\n .getForGroupFboAndDateRange(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate\r\n ).toPromise();\r\n this.fuelreqsData = data as any;\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 {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { combineLatest, EMPTY, of } from 'rxjs';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\nimport { ServiceOrderService } from '../../../services/serviceorder.service';\r\nimport { CustomerInfoByGroupNote } from '../../../models/customer-info-by-group-note';\r\nimport { CustomerAircraftNote } from '../../../models/customer-aircraft-note';\r\nimport { ServiceOrder } from '../../../models/service-order';\r\nimport { Router } from '@angular/router';\r\nimport { Customer } from '../../../models';\r\nimport { CustomerInfoByGroup } from '../../../models/customer-info-by-group';\r\nimport { CustomerAircraft } from '../../../models/customer-aircraft';\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\nimport { OrderNote } from '../../../models/order-note';\r\nimport * as moment from 'moment';\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n\r\n@Component({\r\n //host: {\r\n // '[class.addition-navbar]': 'true',\r\n // '[class.open]': 'open',\r\n //},\r\n selector: 'app-fuelreqs-notes',\r\n styleUrls: ['./fuelreqs-notes.component.scss'],\r\n templateUrl: './fuelreqs-notes.component.html',\r\n})\r\nexport class FuelreqsNotesComponent implements OnInit {\r\n @Input() public serviceOrderId: number | null = null;\r\n @Input() public fuelOrderId: number | null = null;\r\n @Input() public fuelerlinxTransactionId: number | null = null;\r\n @Input() public tailNumber: string;\r\n @Input() public customerId: number;\r\n @Input() public customer: string;\r\n @Input() public isDrawerManuallyClicked: boolean;\r\n @Output() openByDefault: EventEmitter = new EventEmitter();\r\n public customerNotes: string;\r\n public customerAircraftNotes: string;\r\n public serviceOrderNotes: any[];\r\n public additionalNotes: any[];\r\n customerInfoByGroupId: number;\r\n customerAircraft: CustomerAircraft;\r\n isLoading: boolean = true;\r\n newAdditionalNote: string;\r\n\r\n constructor(\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private sharedService: SharedService,\r\n private serviceOrderService: ServiceOrderService,\r\n private fuelReqsService: FuelreqsService,\r\n private router: Router,\r\n private dialog: MatDialog,\r\n ) {\r\n \r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.serviceOrderId || changes.fuelOrderId || changes.fuelerlinxTransactionId || changes.isDrawerManuallyClicked) {\r\n this.loadNotes();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n goToCustomer(): void {\r\n this.router.navigate(['/default-layout/customers/' + this.customerInfoByGroupId]);\r\n }\r\n\r\n goToCustomerAircraft(): void {\r\n this.router.navigate(['/default-layout/customers/' + this.customerInfoByGroupId], { queryParams: { tab: 1, search: this.tailNumber } });\r\n }\r\n\r\n addAdditionalNoteClicked(): void {\r\n var newAdditionalNote: OrderNote = { oid: 0, note: this.newAdditionalNote, associatedFuelOrderId: this.fuelOrderId == null ? 0 : this.fuelOrderId, associatedServiceOrderId: this.serviceOrderId == null ? 0 : this.serviceOrderId, associatedFuelerLinxTransactionId: this.fuelerlinxTransactionId == null ? 0 : this.fuelerlinxTransactionId, dateAdded: moment().utc().toDate(), addedByUserId: this.sharedService.currentUser.oid, addedByName: this.sharedService.currentUser.firstName + \" \" + this.sharedService.currentUser.lastName, timeZone: '' };\r\n this.fuelReqsService.addAdditionalNotes(newAdditionalNote).subscribe((response: any) => {\r\n\r\n });\r\n\r\n this.additionalNotes.push(newAdditionalNote);\r\n this.newAdditionalNote = \"\";\r\n }\r\n\r\n editAdditionalNoteClicked(additionalNote: OrderNote): void {\r\n additionalNote.isEdit = true;\r\n }\r\n\r\n saveEditAdditionalNoteClicked(additionalNote: OrderNote): void {\r\n delete additionalNote.isEdit;\r\n this.fuelReqsService.editAdditionalNote(additionalNote).subscribe((response: any) => {\r\n additionalNote.isEdit = false;\r\n });\r\n }\r\n\r\n deleteAdditionalNoteClicked(additionalNote: OrderNote): void {\r\n const dialogRef = this.dialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'note', item: additionalNote, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((additionalNote) => {\r\n if (!additionalNote) {\r\n return;\r\n }\r\n this.fuelReqsService.deleteAdditionalNote(additionalNote.item).subscribe((response: any) => {\r\n this.additionalNotes.splice(this.additionalNotes.indexOf(additionalNote.item), 1);\r\n });\r\n });\r\n }\r\n\r\n private async loadNotes() {\r\n const results = await combineLatest([\r\n //0\r\n this.customerInfoByGroupService.getCustomerInfoByGroupNoteByCustomerIdGroupId(this.customerId, this.sharedService.currentUser.groupId),\r\n //1\r\n this.customerAircraftsService.getCustomerAircraftNotesByTailNumberGroupIdCustomerId(\r\n this.tailNumber,\r\n this.sharedService.currentUser.groupId,\r\n this.customerId\r\n ),\r\n //2\r\n this.serviceOrderService.getServiceOrderById(this.serviceOrderId),\r\n //3\r\n this.fuelReqsService.getAdditionalOrderNotes(this.fuelOrderId, this.serviceOrderId, this.fuelerlinxTransactionId),\r\n //4\r\n this.customerInfoByGroupService.getCustomerInfoByGroupAndCustomerId(this.sharedService.currentUser.groupId, this.customerId)\r\n ]).toPromise();\r\n\r\n //0\r\n var customerNotes = results[0] as CustomerInfoByGroupNote;\r\n //1\r\n var customerAircraftNotes = results[1] as CustomerAircraftNote[];\r\n //2\r\n var serviceOrderResults = results[2] as any;\r\n this.additionalNotes = results[3] as any[];\r\n //4\r\n var customer = results[4] as CustomerInfoByGroup;\r\n\r\n if (customerNotes != null && customerNotes.notes != \"\")\r\n this.customerNotes = customerNotes.notes;\r\n else\r\n this.customerNotes = \"\";\r\n\r\n if (customerAircraftNotes.length > 0)\r\n this.customerAircraftNotes = customerAircraftNotes[0].notes;\r\n else\r\n this.customerAircraftNotes = \"\";\r\n\r\n var serviceOrder = serviceOrderResults.result as ServiceOrder;\r\n var serviceOrderNotes: any[] = [];\r\n if (serviceOrder != null) {\r\n serviceOrder.serviceOrderItems.forEach((serviceOrderItem) => {\r\n if (serviceOrderItem.serviceNote != null && serviceOrderItem.serviceNote != \"\")\r\n serviceOrderNotes.push(serviceOrderItem.serviceName + \": \" + serviceOrderItem.serviceNote);\r\n });\r\n }\r\n this.serviceOrderNotes = serviceOrderNotes;\r\n\r\n this.customerInfoByGroupId = customer.oid;\r\n\r\n this.isLoading = false;\r\n\r\n if (!this.isDrawerManuallyClicked) {\r\n if (this.customerNotes || this.customerAircraftNotes || this.serviceOrderNotes.length > 0 || this.additionalNotes.length > 0)\r\n this.openByDefault.emit(true);\r\n else\r\n this.openByDefault.emit(false);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{customer}}\r\n \r\n \r\n
\r\n
\r\n \r\n {{tailNumber}}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Customer Note (internal)
\r\n
\r\n
\r\n {{customerNotes}}\r\n
\r\n\r\n
\r\n {{customerAircraftNotes}}\r\n
\r\n

\r\n
\r\n
\r\n
0\">\r\n
Operator Request
\r\n
\r\n
\r\n
\r\n {{note}}\r\n
\r\n
\r\n
\r\n

\r\n
\r\n
\r\n
Additional Notes (internal)
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{note.note}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
Note Added By: {{note.addedByName}}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \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 {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Subject, Subscription, interval } from 'rxjs';\r\nimport { debounceTime, takeWhile } from 'rxjs/operators';\r\nimport {\r\n CsvExportModalComponent,\r\n ICsvExportModalData,\r\n} from 'src/app/shared/components/csv-export-modal/csv-export-modal.component';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvent from '../../../constants/sharedEvents';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-group-analytics-customer-statistics',\r\n styleUrls: ['./group-analytics-customer-statistics.component.scss'],\r\n templateUrl: './group-analytics-customer-statistics.component.html',\r\n})\r\nexport class GroupAnalyticsCustomerStatisticsComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @Input() fbos: any[];\r\n\r\n filterStartDate: Date;\r\n filterEndDate: Date;\r\n icao: string;\r\n fbo: string;\r\n icaoChangedSubscription: any;\r\n chartName = 'group-analytics-customer-statistics';\r\n dataSource: MatTableDataSource = new MatTableDataSource();\r\n filtersChanged: Subject = new Subject();\r\n\r\n selectedFbos: any[];\r\n\r\n tableLocalStorageKey: string;\r\n columns: ColumnType[] = [];\r\n\r\n pageIndex = 0;\r\n pageSize = 10;\r\n dataLength = 0;\r\n intervalSubscription: Subscription;\r\n sortChangeSubscription: Subscription;\r\n filterChangeSubscription: Subscription;\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private exportDialog: MatDialog,\r\n private tableSettingsDialog: MatDialog\r\n ) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n this.filterStartDate = new Date(\r\n moment().add(-1, 'M').format('MM/DD/YYYY')\r\n );\r\n\r\n\r\n this.filterChangeSubscription = this.filtersChanged\r\n .pipe(debounceTime(2000))\r\n .subscribe(() => this.refreshData());\r\n\r\n this.initColumns();\r\n }\r\n\r\n get visibleColumns() {\r\n return (\r\n this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id) || []\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n\r\n this.saveSettings();\r\n });\r\n\r\n if (this.fbos == undefined) {\r\n var isFbosLoaded = false;\r\n this.intervalSubscription = interval(1000)\r\n .pipe(takeWhile(() => !isFbosLoaded))\r\n .subscribe(() => {\r\n if (this.fbos == undefined)\r\n this.ngxLoader.startLoader(this.chartName);\r\n else {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n this.selectedFbos = this.fbos;\r\n this.refreshData();\r\n isFbosLoaded = true;\r\n }\r\n });\r\n }\r\n else {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n this.selectedFbos = this.fbos;\r\n this.refreshData();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.icaoChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvent.icaoChangedEvent) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n this.filterChangeSubscription?.unsubscribe(); \r\n this.intervalSubscription?.unsubscribe();\r\n if (this.icaoChangedSubscription) {\r\n this.icaoChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n\r\n fetchData(fboIds: number[], startDate: Date, endDate: Date) {\r\n return this.fuelreqsService.getCompaniesQuotingDealStatisticsForGroupFbos(\r\n this.sharedService.currentUser.groupId,\r\n fboIds,\r\n startDate,\r\n endDate\r\n );\r\n }\r\n\r\n initColumns() {\r\n\r\n\r\n this.tableLocalStorageKey = `group-analytics-customer-statistics-${this.sharedService.currentUser.groupId}`;\r\n if (localStorage.getItem(this.tableLocalStorageKey)) {\r\n this.columns = JSON.parse(\r\n localStorage.getItem(this.tableLocalStorageKey)\r\n );\r\n } else {\r\n this.columns = [\r\n {\r\n id: 'company',\r\n name: 'Company',\r\n },\r\n {\r\n id: 'directOrders',\r\n name: 'Direct Orders',\r\n },\r\n {\r\n id: 'companyQuotesTotal',\r\n name: 'Number of Quotes',\r\n },\r\n {\r\n id: 'conversionRate',\r\n name: 'Conversion Rate',\r\n },\r\n {\r\n id: 'totalOrders',\r\n name: 'Total Orders',\r\n },\r\n {\r\n id: 'lastPullDate',\r\n name: 'Last Quoted',\r\n sort: 'desc',\r\n },\r\n ];\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fetchData(\r\n this.selectedFbos.map((fbo) => fbo.oid),\r\n this.filterStartDate,\r\n this.filterEndDate\r\n ).subscribe(\r\n (data: any) => {\r\n this.dataLength = data.length;\r\n \r\n this.dataSource.data = data;\r\n\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'lastPullDate':\r\n if (item[property] === 'N/A') {\r\n if (this.sort.direction === 'asc') {\r\n return new Date(8640000000000000);\r\n } else {\r\n return new Date(-8640000000000000);\r\n }\r\n }\r\n return new Date(item[property]);\r\n default:\r\n return item[property];\r\n }\r\n };\r\n this.dataSource.sort = this.sort;\r\n this.paginator.pageIndex = 0;\r\n this.dataSource.paginator = this.paginator;\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n applyFilter(event: Event) {\r\n const filterValue = (event.target as HTMLInputElement).value;\r\n this.dataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n filterChanged() {\r\n this.filtersChanged.next({});\r\n }\r\n\r\n onExport() {\r\n const dialogRef = this.exportDialog.open<\r\n CsvExportModalComponent,\r\n ICsvExportModalData,\r\n ICsvExportModalData\r\n >(CsvExportModalComponent, {\r\n data: {\r\n filterEndDate: this.filterEndDate,\r\n filterStartDate: this.filterStartDate,\r\n title: 'Export Customer Statistics',\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.exportCsv(result.filterStartDate, result.filterEndDate);\r\n });\r\n }\r\n\r\n exportCsv(startDate: Date, endDate: Date) {\r\n this.fetchData(\r\n this.fbos.map((fbo) => fbo.oid),\r\n startDate,\r\n endDate\r\n ).subscribe((data: any[]) => {\r\n const exportData = data.map((item) => {\r\n const row = {\r\n Company: item.company,\r\n 'Conversion Rate': item.conversionRate + '%',\r\n 'Direct Orders': item.directOrders,\r\n 'Last Quoted': item.lastPullDate,\r\n 'Number of Quotes': item.companyQuotesTotal,\r\n 'Total Orders': item.totalOrders,\r\n };\r\n return row;\r\n });\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData); // converts a DOM TABLE element to a worksheet\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Customer Statistics');\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, 'Customer Statistics.xlsx');\r\n });\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.refreshSort();\r\n this.saveSettings();\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n\r\n onPageChanged(event: any) {\r\n localStorage.setItem('pageIndex', event.pageIndex);\r\n sessionStorage.setItem(\r\n 'pageSizeValue',\r\n this.paginator.pageSize.toString()\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n {{ fbo.icao }} - {{ fbo.fbo }}\r\n \r\n \r\n
\r\n\r\n
\r\n Select FBOs\r\n
\r\n \r\n \r\n
\r\n
{{ fbo.icao }} - {{ fbo.fbo }}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Company\r\n \r\n \r\n {{ info.company }}\r\n \r\n \r\n Direct Orders\r\n \r\n \r\n \r\n {{ info.directOrders }}\r\n \r\n \r\n \r\n Number of Quotes\r\n \r\n \r\n \r\n {{ info.companyQuotesTotal }}\r\n \r\n \r\n \r\n Conversion Rate\r\n \r\n \r\n \r\n {{ info.conversionRate }}%\r\n \r\n \r\n \r\n Total Orders\r\n \r\n \r\n \r\n {{ info.totalOrders }}\r\n \r\n \r\n \r\n Last Quoted\r\n \r\n \r\n \r\n {{ info.lastPullDate }}\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\nimport { NullOrEmptyToDefault } from 'src/app/shared/pipes/null/NullOrEmptyToDefault.pipe';\r\n\r\n@Component({\r\n selector: 'app-customer-email-grid',\r\n templateUrl: './customer-email-grid.component.html',\r\n styleUrls: ['./customer-email-grid.component.scss'],\r\n providers: [NullOrEmptyToDefault],\r\n})\r\nexport class CustomerEmailGridComponent implements OnInit {\r\n @Input() dataSource: any[];\r\n\r\n columns = [];\r\n displayedColumns: string[] = [];\r\n\r\n constructor(private nullOrEmptyToDefaultPipe: NullOrEmptyToDefault) {\r\n this.columns = [\r\n {\r\n columnDef: 'company',\r\n header: 'Company',\r\n cell: (element: any) =>\r\n `${this.nullOrEmptyToDefaultPipe.transform(\r\n element.company,\r\n defaultStringsEnum.empty\r\n )}`,\r\n },\r\n {\r\n columnDef: 'firstName',\r\n header: 'First Name',\r\n cell: (element: any) =>\r\n `${this.nullOrEmptyToDefaultPipe.transform(\r\n element.firstName,\r\n defaultStringsEnum.empty\r\n )}`,\r\n },\r\n {\r\n columnDef: 'lastName',\r\n header: 'Last Name',\r\n cell: (element: any) =>\r\n `${this.nullOrEmptyToDefaultPipe.transform(\r\n element.lastName,\r\n defaultStringsEnum.empty\r\n )}`,\r\n },\r\n {\r\n columnDef: 'email',\r\n header: 'Email',\r\n cell: (element: any) =>\r\n `${this.nullOrEmptyToDefaultPipe.transform(\r\n element.email,\r\n defaultStringsEnum.empty\r\n )}`,\r\n },\r\n ];\r\n this.displayedColumns = this.columns.map((c) => c.columnDef);\r\n }\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n \r\n \r\n {{column.header}}\r\n \r\n \r\n {{column.cell(row)}}\r\n \r\n \r\n\r\n \r\n \r\n","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport {\r\n AbstractControl,\r\n FormControl,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { validateEmail } from 'src/utils/email';\r\nimport { ImageSettingsModel } from '@syncfusion/ej2-angular-richtexteditor';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { GroupAnalyticsGenerateDialogData } from '../group-analytics-generate-dialog/group-analytics-generate-dialog.component';\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'app-group-analytics-email-pricing-dialog',\r\n styleUrls: ['./group-analytics-email-pricing-dialog.component.scss'],\r\n templateUrl: './group-analytics-email-pricing-dialog.component.html',\r\n})\r\nexport class GroupAnalyticsEmailPricingDialogComponent implements OnInit {\r\n gridData: any[] = [];\r\n\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64' }\r\n\r\n form: FormGroup;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: GroupAnalyticsGenerateDialogData\r\n ) {\r\n this.form = new FormGroup({\r\n emailContentHtml: new FormControl(\r\n this.data.emailTemplate.emailContentHtml\r\n ),\r\n fromAddress: new FormControl(this.data.emailTemplate.fromAddress, [\r\n this.fromAddressValidator,\r\n ]),\r\n replyTo: new FormControl(\r\n this.data.emailTemplate.replyTo,\r\n Validators.pattern(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n )\r\n ),\r\n subject: new FormControl(this.data.emailTemplate.subject, Validators.required),\r\n });\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.data.customers\r\n .filter((customer) => customer.contacts.length > 0)\r\n .forEach((customer) => {\r\n this.gridData.push({\r\n ...customer,\r\n isCustomer: true,\r\n });\r\n customer.contacts.forEach((contact) => {\r\n this.gridData.push({\r\n ...contact,\r\n company: '',\r\n isCustomer: false,\r\n });\r\n });\r\n });\r\n }\r\n\r\n onSendClick(): void {\r\n this.data.emailTemplate.emailContentHtml = this.form.value.emailContentHtml;\r\n this.data.emailTemplate.fromAddress = this.form.value.fromAddress;\r\n this.data.emailTemplate.replyTo = this.form.value.replyTo;\r\n this.data.emailTemplate.subject = this.form.value.subject;\r\n this.dialogRef.close(this.data);\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n fromAddressValidator(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return validateEmail(value + '@fbolinx.com')\r\n ? null\r\n : { emailNotValid: true };\r\n }\r\n}\r\n","

Send Email

\r\n
\r\n \r\n \r\n \r\n \r\n Invalid email address.\r\n \r\n @FBOLinx.com\r\n\r\n \r\n \r\n Invalid email address.\r\n \r\n\r\n \r\n \r\n Subject is required.\r\n \r\n\r\n \r\n \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 {\r\n AbstractControl,\r\n FormControl,\r\n FormGroup,\r\n ValidationErrors,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ImageSettingsModel } from '@syncfusion/ej2-angular-richtexteditor';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { GroupsService } from 'src/app/services/groups.service';\r\nimport { validateEmail } from 'src/utils/email';\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'app-group-analytics-email-template-dialog',\r\n styleUrls: ['./group-analytics-email-template-dialog.component.scss'],\r\n templateUrl: './group-analytics-email-template-dialog.component.html',\r\n})\r\nexport class GroupAnalyticsEmailTemplateDialogComponent implements OnInit {\r\n logo: File = null;\r\n isLogoUploading = false;\r\n logoUrl = '';\r\n\r\n form: FormGroup;\r\n\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64' }\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private readonly sharedService: SharedService,\r\n private readonly groupsService: GroupsService\r\n ) {\r\n this.form = new FormGroup({\r\n emailContentHtml: new FormControl(\r\n this.data.emailContentHtml\r\n ),\r\n fromAddress: new FormControl(this.data.fromAddress, [\r\n this.fromAddressValidator,\r\n ]),\r\n replyTo: new FormControl(\r\n this.data.replyTo,\r\n Validators.pattern(\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\r\n )\r\n ),\r\n subject: new FormControl(this.data.subject, Validators.required),\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.logoUrl = this.data.logoUrl;\r\n }\r\n\r\n onFileChange(event) {\r\n this.logo = null;\r\n if (event.target.files && event.target.files.length > 0) {\r\n // Set theFile property\r\n this.logo = event.target.files[0];\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n if (this.logo != null) {\r\n this.isLogoUploading = true;\r\n\r\n const file = {\r\n contentType: this.logo.type,\r\n fileData: null,\r\n // Set File Information\r\n fileName: this.logo.name,\r\n groupId: this.sharedService.currentUser.groupId,\r\n };\r\n\r\n // Use FileReader() object to get file to upload\r\n // NOTE: FileReader only works with newer browsers\r\n const reader = new FileReader();\r\n\r\n // Setup onload event for reader\r\n reader.onload = () => {\r\n // Store base64 encoded representation of file\r\n file.fileData = reader.result.toString();\r\n\r\n // POST to server\r\n this.groupsService.uploadLogo(file).subscribe((resp: any) => {\r\n this.isLogoUploading = false;\r\n this.logoUrl = resp.message;\r\n });\r\n };\r\n\r\n // Read the file\r\n reader.readAsDataURL(this.logo);\r\n }\r\n }\r\n\r\n deleteFile(): void {\r\n this.groupsService\r\n .deleteLogo(this.sharedService.currentUser.groupId)\r\n .subscribe(() => {\r\n this.logoUrl = '';\r\n });\r\n }\r\n\r\n update(): void {\r\n this.dialogRef.close(this.form.value);\r\n }\r\n\r\n fromAddressValidator(control: AbstractControl): ValidationErrors | null {\r\n const value = control.value;\r\n\r\n if (!value) {\r\n return null;\r\n }\r\n\r\n return validateEmail(value + '@fbolinx.com')\r\n ? null\r\n : { emailNotValid: true };\r\n }\r\n}\r\n","

Email Template

\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Invalid email address.\r\n \r\n @FBOLinx.com\r\n
\r\n\r\n
\r\n \r\n \r\n Invalid email address.\r\n \r\n
\r\n\r\n \r\n \r\n Subject is required.\r\n \r\n\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n \r\n \r\n Upload File\r\n \r\n \r\n Delete\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Update Email Template\r\n \r\n \r\n
\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { flatMap, isEqual, uniq } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvent from '../../../constants/sharedEvents';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\nimport {\r\n CsvExportModalComponent,\r\n ICsvExportModalData,\r\n} from '../../../shared/components/csv-export-modal/csv-export-modal.component';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-group-analytics-fuel-vendor-sources',\r\n styleUrls: ['./group-analytics-fuel-vendor-sources.component.scss'],\r\n templateUrl: './group-analytics-fuel-vendor-sources.component.html',\r\n})\r\nexport class GroupAnalyticsFuelVendorSourcesComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n filterStartDate: Date;\r\n filterEndDate: Date;\r\n icao: string;\r\n fbo: string;\r\n icaoChangedSubscription: any;\r\n chartName = 'group-analytics-fuel-vendor-sources';\r\n dataSource: MatTableDataSource;\r\n vendors: string[] = [];\r\n\r\n tableLocalStorageKey: string;\r\n columns: ColumnType[] = [];\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private exportDialog: MatDialog,\r\n private tableSettingsDialog: MatDialog\r\n ) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n this.filterStartDate = new Date(\r\n moment().add(-12, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(\r\n moment().add(7, 'd').format('MM/DD/YYYY')\r\n );\r\n\r\n this.refreshColumns();\r\n }\r\n\r\n get visibleColumns() {\r\n return (\r\n this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id) || []\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n });\r\n this.refreshData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.icaoChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvent.icaoChangedEvent) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n if (this.icaoChangedSubscription) {\r\n this.icaoChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n\r\n fetchData(startDate: Date, endDate: Date) {\r\n return this.fuelreqsService.getFuelVendorSourcesByAirports(\r\n this.sharedService.currentUser.groupId,\r\n startDate,\r\n endDate\r\n );\r\n }\r\n\r\n refreshColumns() {\r\n // this.tableLocalStorageKey = `group-analytics-fuel-vendor-sources-${this.sharedService.currentUser.groupId}`;\r\n this.columns = [\r\n {\r\n id: 'icao',\r\n name: 'ICAO',\r\n },\r\n {\r\n id: 'directOrders',\r\n name: 'Directs',\r\n },\r\n ...this.vendors.map((vendor) => ({\r\n id: vendor,\r\n name: vendor,\r\n })),\r\n ];\r\n }\r\n\r\n refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fetchData(this.filterStartDate, this.filterEndDate).subscribe(\r\n (data: any) => {\r\n const vendors = uniq(\r\n flatMap(data, (row) => row.vendorOrders).map(\r\n (v) => v.contractFuelVendor\r\n ).filter((vendor) => \r\n vendor != null && \r\n vendor !== undefined && \r\n vendor.trim() !== ''\r\n )\r\n );\r\n if (!isEqual(this.vendors, vendors)) {\r\n this.vendors = vendors;\r\n }\r\n\r\n const tableData = data.map((row) => {\r\n const tableRow = {\r\n directOrders: row.directOrders,\r\n icao: row.icao,\r\n };\r\n for (const vendor of row.vendorOrders) {\r\n tableRow[vendor.contractFuelVendor] =\r\n vendor.transactionsCount;\r\n }\r\n return tableRow;\r\n });\r\n\r\n this.dataSource = new MatTableDataSource(tableData);\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'lastPullDate':\r\n if (item[property] === 'N/A') {\r\n if (this.sort.direction === 'asc') {\r\n return new Date(8640000000000000);\r\n } else {\r\n return new Date(-8640000000000000);\r\n }\r\n }\r\n return new Date(item[property]);\r\n default:\r\n return item[property];\r\n }\r\n };\r\n this.dataSource.sort = this.sort;\r\n\r\n this.refreshColumns();\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n onExport() {\r\n const dialogRef = this.exportDialog.open<\r\n CsvExportModalComponent,\r\n ICsvExportModalData,\r\n ICsvExportModalData\r\n >(CsvExportModalComponent, {\r\n data: {\r\n filterEndDate: this.filterEndDate,\r\n filterStartDate: this.filterStartDate,\r\n title: 'Export Customer Statistics',\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.exportCsv(result.filterStartDate, result.filterEndDate);\r\n });\r\n }\r\n\r\n exportCsv(startDate: Date, endDate: Date) {\r\n this.fetchData(startDate, endDate).subscribe((data: any[]) => {\r\n const vendors = uniq(\r\n flatMap(data, (row) => row.vendorOrders).map(\r\n (v) => v.contractFuelVendor\r\n )\r\n );\r\n\r\n const tableData = data.map((row) => {\r\n const tableRow = {\r\n directOrders: row.directOrders,\r\n icao: row.icao,\r\n };\r\n for (const vendor of row.vendorOrders) {\r\n tableRow[vendor.contractFuelVendor] =\r\n vendor.transactionsCount;\r\n }\r\n return tableRow;\r\n });\r\n const exportData = tableData.map((item) => {\r\n const row = {\r\n 'Direct Orders': item.directOrders,\r\n ICAO: item.icao,\r\n };\r\n for (const vendor of vendors) {\r\n row[vendor] = item[vendor];\r\n }\r\n return row;\r\n });\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData); // converts a DOM TABLE element to a worksheet\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(\r\n wb,\r\n ws,\r\n 'Fuel Vendor Share by Airport'\r\n );\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, 'Fuel Vendor Share by Airport.xlsx');\r\n });\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.refreshSort();\r\n this.saveSettings();\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n ICAO\r\n \r\n \r\n {{ info.icao }}\r\n \r\n \r\n Direct Orders\r\n \r\n \r\n \r\n {{ info.directOrders }}\r\n \r\n \r\n \r\n {{ vendor }}\r\n \r\n \r\n {{ info[vendor] }}
\r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { MatTableModule } from '@angular/material/table'\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forEach } from 'lodash';\r\nimport {\r\n ColumnType,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'select',\r\n name: 'Select',\r\n },\r\n {\r\n id: 'customer',\r\n name: 'Customer'\r\n }\r\n];\r\n\r\n@Component({\r\n selector: 'app-group-analytics-generate-dialog-grid',\r\n styleUrls: ['./group-analytics-generate-dialog-grid.component.scss'],\r\n templateUrl: './group-analytics-generate-dialog-grid.component.html',\r\n})\r\nexport class GroupAnalyticsGenerateDialogGridComponent implements OnInit {\r\n @Input() groupDistributionData: any[];\r\n @Input() groupDistributionGridData: any[];\r\n @Output() customerSelectedClicked = new EventEmitter();\r\n @Output() selectAllClicked = new EventEmitter();\r\n\r\n groupDistributionDataSource: any = null;\r\n columns: ColumnType[] = [];\r\n\r\n selectAll = false;\r\n\r\n constructor(private router: Router, private sharedService: SharedService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.columns = initialColumns;\r\n\r\n this.refreshGroupDistributionDataSource();\r\n }\r\n\r\n ngOnDestroy() {\r\n forEach(this.groupDistributionDataSource.data, (customer) => {\r\n if (customer.checked)\r\n customer.checked = false;\r\n });\r\n }\r\n\r\n getTableColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id);\r\n }\r\n\r\n selectAction() {\r\n var customers;\r\n\r\n if (this.groupDistributionDataSource.filter && this.groupDistributionDataSource.filter != \"\") {\r\n forEach(this.groupDistributionDataSource.filteredData, (customer) => {\r\n customer.checked = this.selectAll;\r\n });\r\n\r\n customers = this.groupDistributionDataSource.filteredData;\r\n\r\n this.selectAllClicked.emit(this.groupDistributionDataSource.filteredData);\r\n }\r\n else {\r\n forEach(this.groupDistributionDataSource.data, (customer) => {\r\n customer.checked = this.selectAll;\r\n });\r\n\r\n customers = this.groupDistributionDataSource.data;\r\n\r\n this.selectAllClicked.emit(this.groupDistributionDataSource.data);\r\n }\r\n\r\n this.updateSelectAll(customers);\r\n }\r\n\r\n updateSelectAll(customers) {\r\n const selectedCount = customers.filter(c => c.checked == true).length;\r\n const totalItems = customers.length;\r\n\r\n if (selectedCount === totalItems) {\r\n this.selectAll = true;\r\n } else if (selectedCount > 0) {\r\n this.selectAll = false;\r\n } else {\r\n this.selectAll = false;\r\n }\r\n }\r\n\r\n public customerSelectedRow(customer) {\r\n if (customer.checked == null)\r\n customer.checked = true;\r\n else\r\n customer.checked = !customer.checked;\r\n\r\n this.customerSelected();\r\n }\r\n\r\n public customerSelected() {\r\n var customers;\r\n\r\n if (this.groupDistributionDataSource.filter && this.groupDistributionDataSource.filter != \"\")\r\n customers = this.groupDistributionDataSource.filteredData;\r\n else\r\n customers = this.groupDistributionDataSource.data;\r\n\r\n this.updateSelectAll(customers);\r\n\r\n this.customerSelectedClicked.emit(this.groupDistributionDataSource.data);\r\n }\r\n\r\n applyFilter(filter: string) {\r\n this.groupDistributionDataSource.filter = filter.trim().toLowerCase();\r\n }\r\n\r\n // Function to determine if \"Select All\" checkbox should be indeterminate\r\n public isIndeterminate(): boolean {\r\n var selectedCount;\r\n var totalItems;\r\n if (this.groupDistributionDataSource.filter && this.groupDistributionDataSource.filter != \"\") {\r\n selectedCount = this.groupDistributionDataSource.filteredData.filter((customer) => customer.checked).length;\r\n totalItems = this.groupDistributionDataSource.filteredData.length;\r\n }\r\n else {\r\n selectedCount = this.groupDistributionDataSource.data.filter((customer) => customer.checked).length;\r\n totalItems = this.groupDistributionDataSource.data.length;\r\n }\r\n return selectedCount > 0 && selectedCount < totalItems;\r\n }\r\n\r\n private refreshGroupDistributionDataSource() {\r\n if (!this.groupDistributionDataSource) {\r\n this.groupDistributionDataSource = new MatTableDataSource();\r\n }\r\n\r\n this.groupDistributionDataSource.data = this.groupDistributionGridData;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n
{{customer.company}}
\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { GridComponent, SelectionService } from '@syncfusion/ej2-angular-grids';\r\nimport { EmailTemplate } from 'src/app/models/email-template';\r\nimport { EmailcontentService } from 'src/app/services/emailcontent.service';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { GroupAnalyticsEmailPricingDialogComponent } from '../group-analytics-email-pricing-dialog/group-analytics-email-pricing-dialog.component';\r\nimport { DecimalPrecisionPipe } from 'src/app/shared/pipes/decimal/decimal-precision.pipe';\r\n\r\nexport type GroupAnalyticsGenerateDialogData = {\r\n customers: any[];\r\n emailTemplate: EmailTemplate;\r\n};\r\n\r\n@Component({\r\n providers: [SharedService, SelectionService],\r\n selector: 'app-group-analytics-generate-dialog',\r\n styleUrls: ['./group-analytics-generate-dialog.component.scss'],\r\n templateUrl: './group-analytics-generate-dialog.component.html',\r\n})\r\nexport class GroupAnalyticsGenerateDialogComponent implements OnInit {\r\n @ViewChild('grid') public grid: GridComponent;\r\n\r\n // Public Members\r\n dataSources: any = {};\r\n filter = '';\r\n selectedCustomers: any[];\r\n downloading: boolean;\r\n emailing: boolean;\r\n exportedCustomersCount: number;\r\n public selectOptions: any;\r\n public editSettings: any;\r\n public toolbar: string[];\r\n public filterOptions = {\r\n immediateModeDelay: 1000,\r\n mode: 'Immediate',\r\n };\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: GroupAnalyticsGenerateDialogData,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private sharedService: SharedService,\r\n private emailDialog: MatDialog,\r\n private emailContentService: EmailcontentService,\r\n private decimalPrecisionPipe: DecimalPrecisionPipe\r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n this.dataSources = this.data.customers;\r\n this.selectOptions = { persistSelection: true };\r\n this.editSettings = { allowDeleting: true };\r\n\r\n this.toolbar = ['Delete'];\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onEmail() {\r\n const dialogRef = this.emailDialog.open<\r\n GroupAnalyticsEmailPricingDialogComponent,\r\n GroupAnalyticsGenerateDialogData\r\n >(GroupAnalyticsEmailPricingDialogComponent, {\r\n data: {\r\n customers: this.selectedCustomers,\r\n emailTemplate: this.data.emailTemplate,\r\n },\r\n height: '600px',\r\n width: '680px',\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n const emailTemplate: EmailTemplate = {\r\n emailContentHtml: result.emailTemplate.emailContentHtml,\r\n fromAddress: result.emailTemplate.fromAddress,\r\n groupId: this.sharedService.currentUser.groupId,\r\n oid: result.emailTemplate?.oid,\r\n replyTo: result.emailTemplate.replyTo,\r\n subject: result.emailTemplate.subject,\r\n };\r\n\r\n if (!emailTemplate.oid) {\r\n this.emailContentService\r\n .add(emailTemplate)\r\n .subscribe((data: EmailTemplate) => {\r\n this.data.emailTemplate = data;\r\n this.onSendEmail();\r\n });\r\n } else {\r\n this.emailContentService\r\n .update(emailTemplate)\r\n .subscribe((data: EmailTemplate) => {\r\n this.data.emailTemplate = emailTemplate;\r\n this.onSendEmail();\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n async onGenerate() {\r\n this.downloading = true;\r\n this.exportedCustomersCount = 0;\r\n\r\n const promises = this.selectedCustomers.map(\r\n async (selectedCustomer) => {\r\n const data = (await this.customerInfoByGroupService\r\n .getGroupAnalytics(\r\n this.sharedService.currentUser.groupId,\r\n selectedCustomer.customerId\r\n )\r\n .toPromise()) as any;\r\n\r\n if (data.length > 0) {\r\n const exportData: any[] = [];\r\n\r\n this.populateExportDataForCustomer(\r\n data,\r\n exportData\r\n );\r\n\r\n await this.exportReportForCustomer(exportData, data[0].company);\r\n }\r\n }\r\n );\r\n\r\n await Promise.all(promises);\r\n this.downloading = false;\r\n }\r\n\r\n async onSendEmail() {\r\n this.emailing = true;\r\n this.exportedCustomersCount = 0;\r\n\r\n const promises = this.selectedCustomers.map((selectedCustomer) =>\r\n this.customerInfoByGroupService\r\n .getGroupAnalyticsAndEmail(\r\n this.sharedService.currentUser.groupId,\r\n selectedCustomer.customerId\r\n )\r\n .toPromise()\r\n );\r\n\r\n await Promise.all(promises);\r\n this.emailing = false;\r\n }\r\n\r\n applyFilter(filter: string) {\r\n this.filter = filter;\r\n\r\n this.dataSources = this.data.customers.filter((customer) =>\r\n customer.company.toLowerCase().includes(filter)\r\n );\r\n this.focusTextbox();\r\n }\r\n\r\n customerSelectedClicked(customers) {\r\n this.selectedCustomers = customers.filter(c => c.checked == true);\r\n this.focusTextbox();\r\n }\r\n\r\n selectAllClicked(customers) {\r\n if (customers.filter(c => c.checked == true).length > 0)\r\n this.selectedCustomers = customers;\r\n else\r\n this.selectedCustomers = [];\r\n this.focusTextbox();\r\n }\r\n\r\n populateExportDataForCustomer(\r\n data: any,\r\n exportData: any[]\r\n ) {\r\n for (const fbo of data) {\r\n for (const fboPrice of fbo.groupCustomerFbos) {\r\n for (let i = 0; i < fboPrice.prices.length; i++) {\r\n const row: any = {};\r\n row.ICAO = i === 0 ? fboPrice.icao : '';\r\n row['Volume Tier'] = fboPrice.prices[i].volumeTier;\r\n row[\"Product\"] = fboPrice.prices[i].product;\r\n if (fboPrice.prices[i].priceBreakdownDisplayType === 0) {\r\n row.Price = this.decimalPrecisionPipe.transform(fboPrice.prices[i].domPrivate);\r\n } else if (fboPrice.prices[i].priceBreakdownDisplayType === 1) {\r\n row['International Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].intPrivate)\r\n row['Domestic Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].domPrivate);\r\n } else if (fboPrice.prices[i].priceBreakdownDisplayType === 2) {\r\n row['Commercial Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].domComm);\r\n row['Private Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].domPrivate);\r\n } else {\r\n row['Int/Comm Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].intComm);\r\n row['Int/Private Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].intPrivate);\r\n row['Dom/Comm Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].domComm);\r\n row['Dom/Private Price'] =\r\n this.decimalPrecisionPipe.transform(fboPrice.prices[i].domPrivate);\r\n }\r\n row['Tail Numbers'] = fbo.tailNumbers;\r\n exportData.push(row);\r\n }\r\n if (!fboPrice.prices.length) {\r\n exportData.push({\r\n 'Dom/Comm': '',\r\n 'Dom/Private': '',\r\n ICAO: fboPrice.icao,\r\n 'Int/Comm': '',\r\n 'Int/Private': '',\r\n 'Tail Numbers': '',\r\n 'Volume Tier': '',\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n exportReportForCustomer(exportData: any[], company: string) {\r\n return new Promise((resolve) => {\r\n // TODO\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData); // converts a DOM TABLE element to a worksheet\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Report');\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, company + '.csv');\r\n\r\n setTimeout(() => {\r\n resolve({});\r\n }, 100);\r\n });\r\n }\r\n\r\n focusTextbox() {\r\n const searchBox = document.getElementById(\"searchBox\") as HTMLInputElement;\r\n\r\n if (searchBox && searchBox.value != \"\") {\r\n setTimeout(() => {\r\n searchBox.focus();\r\n }, 1);\r\n }\r\n }\r\n\r\n public onFilterInput(event: any, fieldName: string, operator: string): void {\r\n this.grid.filterByColumn(fieldName, operator, event.target.value);\r\n this.focusTextbox();\r\n }\r\n}\r\n","

FBO Group Customer Pricing Report

\r\n
Select the customer(s) you'd like to generate a price sheet for.
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ !downloading ? \"Generate and Download\" : \"\" }}\r\n \r\n \r\n \r\n {{ !emailing ? \"Email Pricing\" : \"\" }}\r\n \r\n \r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { EmailTemplate } from 'src/app/models/email-template';\r\nimport { GroupsService } from 'src/app/services/groups.service';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { EmailcontentService } from '../../../services/emailcontent.service';\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { GroupAnalyticsEmailTemplateDialogComponent } from '../group-analytics-email-template-dialog/group-analytics-email-template-dialog.component';\r\nimport {\r\n GroupAnalyticsGenerateDialogComponent,\r\n GroupAnalyticsGenerateDialogData,\r\n} from '../group-analytics-generate-dialog/group-analytics-generate-dialog.component';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n selector: 'app-group-analytics-home',\r\n styleUrls: ['./group-analytics-home.component.scss'],\r\n templateUrl: './group-analytics-home.component.html',\r\n})\r\nexport class GroupAnalyticsHomeComponent implements OnInit {\r\n pageTitle = 'Group Analytics';\r\n\r\n customers: any[];\r\n fbos: any[];\r\n emailTemplate: EmailTemplate = null;\r\n\r\n logoUrl = '';\r\n chartName = 'Group Analytics';\r\n\r\n constructor(\r\n private reportDialog: MatDialog,\r\n private editEmailDialog: MatDialog,\r\n private sharedService: SharedService,\r\n private fbosService: FbosService,\r\n private groupsService: GroupsService,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private emailContentService: EmailcontentService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.loadCustomers();\r\n this.loadFbos();\r\n this.loadEmailTemplate();\r\n this.loadLogo();\r\n }\r\n\r\n onGenerate() {\r\n const dialogRef = this.reportDialog.open<\r\n GroupAnalyticsGenerateDialogComponent,\r\n GroupAnalyticsGenerateDialogData\r\n >(GroupAnalyticsGenerateDialogComponent, {\r\n autoFocus: false,\r\n data: {\r\n customers: this.customers,\r\n emailTemplate: this.emailTemplate,\r\n },\r\n panelClass: 'group-analytics-dialog',\r\n width: '500px',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n this.loadEmailTemplate();\r\n });\r\n }\r\n\r\n onEditEmail() {\r\n const dialogRef = this.editEmailDialog.open(\r\n GroupAnalyticsEmailTemplateDialogComponent,\r\n {\r\n data: {\r\n emailContentHtml: this.emailTemplate?.emailContentHtml,\r\n fromAddress: this.emailTemplate?.fromAddress,\r\n logoUrl: this.logoUrl,\r\n replyTo: this.emailTemplate?.replyTo,\r\n subject: this.emailTemplate?.subject,\r\n },\r\n height: '600px',\r\n width: '500px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n const emailTemplate: EmailTemplate = {\r\n emailContentHtml: result.emailContentHtml,\r\n fromAddress: result.fromAddress,\r\n groupId: this.sharedService.currentUser.groupId,\r\n oid: this.emailTemplate?.oid,\r\n replyTo: result.replyTo,\r\n subject: result.subject,\r\n };\r\n\r\n if (!this.emailTemplate || !this.emailTemplate.oid) {\r\n this.emailContentService\r\n .add(emailTemplate)\r\n .subscribe((data: EmailTemplate) => {\r\n this.emailTemplate = data;\r\n });\r\n } else {\r\n this.emailContentService\r\n .update(emailTemplate)\r\n .subscribe((data: EmailTemplate) => {\r\n this.emailTemplate = emailTemplate;\r\n });\r\n }\r\n });\r\n }\r\n\r\n private loadCustomers() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.customerInfoByGroupService\r\n .getCustomersWithContactsByGroup(\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((customers: any[]) => {\r\n this.customers = customers;\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n\r\n private loadFbos() {\r\n this.fbosService\r\n .getForGroup(this.sharedService.currentUser.groupId)\r\n .subscribe((fbos: any[]) => {\r\n this.fbos = fbos;\r\n });\r\n }\r\n\r\n private loadEmailTemplate() {\r\n this.emailContentService\r\n .getForGroup(this.sharedService.currentUser.groupId)\r\n .subscribe((data: EmailTemplate) => {\r\n this.emailTemplate = data;\r\n\r\n if (!this.emailTemplate) {\r\n this.emailTemplate = {\r\n emailContentHtml: '',\r\n fromAddress: '',\r\n groupId: this.sharedService.currentUser.groupId,\r\n subject: '',\r\n };\r\n }\r\n });\r\n }\r\n\r\n private loadLogo() {\r\n this.groupsService\r\n .getLogo(this.sharedService.currentUser.groupId)\r\n .subscribe((logoData: any) => {\r\n this.logoUrl = logoData.message;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n FBO Group Customer Pricing Report\r\n
\r\n

\r\n This report allows you to download current pricing from\r\n each of your FBOs for a specific customer. Use to\r\n generate a price sheet for a customer at all your\r\n locations.\r\n

\r\n \r\n
\r\n\r\n
\r\n \r\n
Edit Email
\r\n

\r\n Customize email template used for customer specific\r\n pricing at each of FBO locations.\r\n

\r\n \r\n
\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 {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport {\r\n ColumnType,\r\n} from 'src/app/shared/components/table-settings/table-settings.component';\r\n\r\nimport { AIRCRAFT_IMAGES } from '../../flight-watch/flight-watch-map/aircraft-images';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { AirportWatchService } from '../../../services/airportwatch.service';\r\nimport { FbosService } from '../../../services/fbos.service';\r\n\r\n//Models\r\nimport { csvFileOptions, GridBase } from 'src/app/services/tables/GridBase';\r\nimport { IntraNetworkVisitsReportItem } from 'src/app/models/intra-network-visits-report-item';\r\nimport { SelectedDateFilter } from 'src/app/shared/components/preset-date-filter/preset-date-filter.component';\r\nimport { ReportFilterItems } from '../../analytics/analytics-report-popup/report-filters/report-filters.component';\r\nimport { isCommercialAircraftInFlightNumbers } from 'src/utils/aircraft';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n\r\n@Component({\r\n selector: 'app-group-analytics-intra-network-visits-report',\r\n templateUrl: './group-analytics-intra-network-visits-report.component.html',\r\n styleUrls: ['./group-analytics-intra-network-visits-report.component.scss'],\r\n})\r\nexport class GroupAnalyticsIntraNetworkVisitsReportComponent extends GridBase implements OnInit {\r\n @ViewChild(MatPaginator) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n\r\n @Input() groupId: number;\r\n @Input() fboId: number;\r\n @Input() startDate: Date;\r\n @Input() endDate: Date;\r\n\r\n @Output() onFilterChange = new EventEmitter();\r\n\r\n chartName = 'intra-network-visits-report-table';\r\n availableColumns: ColumnType[] = [\r\n { id: 'tailNumber', name: 'Tail Number' },\r\n { id: 'company', name: 'Company' },\r\n { id: 'aircraftType', name: 'Aircraft' }\r\n ];\r\n dynamicColumns: ColumnType[] = [];\r\n columns: ColumnType[] = [];\r\n\r\n csvFileOptions: csvFileOptions = { fileName: 'FBO Network Arrival & Departures', sheetName: 'FBO Network Arrival&Departures' };\r\n\r\n\r\n data: IntraNetworkVisitsReportItem[];\r\n fbos: any[] = [];\r\n selectedFbos: any[] = [];\r\n\r\n filtersChanged: Subject = new Subject();\r\n aircraftTypes = AIRCRAFT_IMAGES;\r\n tableLocalStorageKey: string;\r\n\r\n icao:string;\r\n reportHiddenItems: ReportFilterItems[] = [ReportFilterItems.icaoDropDown, ReportFilterItems.searchInput];\r\n\r\n isCommercialInvisible = false;\r\n filtersChangeSubscription: Subscription; \r\n constructor(private airportWatchSerice: AirportWatchService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private tableSettingsDialog: MatDialog,\r\n private fboService: FbosService\r\n ) {\r\n super();\r\n this.filtersChangeSubscription = this.filtersChanged\r\n .pipe(debounceTime(500))\r\n .subscribe(() => this.refreshDataSource());\r\n\r\n this.icao = this.sharedService.getCurrentUserPropertyValue(localStorageAccessConstant.icao);\r\n\r\n }\r\n\r\n get visibleColumns() {\r\n return (\r\n (this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id) || [])\r\n );\r\n }\r\n\r\n get getAllColumns() {\r\n return this.availableColumns\r\n .concat(this.dynamicColumns);\r\n }\r\n\r\n ngOnInit() {\r\n this.loadFbos();\r\n }\r\n ngOnDestroy() {\r\n this.filtersChangeSubscription?.unsubscribe();\r\n }\r\n public initColumns() {\r\n this.tableLocalStorageKey = `group-analytics-intra-network-visits-report-${this.sharedService.currentUser.fboId}`;\r\n this.columns = this.getClientSavedColumns(this.tableLocalStorageKey, this.getAllColumns);\r\n }\r\n\r\n public clearAllFilters() {\r\n this.selectedFbos = [];\r\n this.isCommercialInvisible = false;\r\n this.dataSource.filter = '';\r\n for (const filter of this.dataSource.filterCollection) {\r\n if (filter.isGlobal) {\r\n continue;\r\n }\r\n\r\n filter.dateFilter = {\r\n endDate: null,\r\n startDate: null,\r\n };\r\n filter.stringFilter = '';\r\n filter.numberRangeFilter = {\r\n end: null,\r\n start: null,\r\n };\r\n filter.isFiltered = false;\r\n }\r\n\r\n this.filterChanged();\r\n }\r\n\r\n public refreshData(initializeSavedColumns: boolean = false) {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.airportWatchSerice\r\n .getIntraNetworkVisitsReport(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.filterStartDate,\r\n this.filterEndDate\r\n )\r\n .subscribe((data: IntraNetworkVisitsReportItem[]) => {\r\n this.data = data;\r\n this.refreshDataSource();\r\n if (initializeSavedColumns)\r\n this.initColumns();\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n\r\n filterChanged(value: any = null) {\r\n if(typeof value == \"boolean\")\r\n this.isCommercialInvisible = value;\r\n\r\n this.filtersChanged.next({});\r\n }\r\n\r\n public exportCsv() {\r\n let computePropertyFnc = (item: any[], id: string): any => {\r\n if (id == \"aircraftTypeCode\")\r\n item[id] = this.getAircraftLabel(item[id]);\r\n else if (!item[id] && this.dynamicColumns.some(x => x.id == id))\r\n item[id] = 0;\r\n }\r\n this.exportCsvFile(this.columns, this.csvFileOptions.fileName, this.csvFileOptions.sheetName, computePropertyFnc);\r\n }\r\n\r\n public getAircraftLabel(type: string) {\r\n const found = this.aircraftTypes.find((a) => a.id === type);\r\n if (found) {\r\n return found.label;\r\n } else {\r\n return 'Other';\r\n }\r\n }\r\n\r\n public removeFboSelectionClicked(fbo: any) {\r\n this.selectedFbos.splice(this.selectedFbos.indexOf(fbo), 1);\r\n this.filterChanged();\r\n }\r\n\r\n public openSettings() {\r\n var _this = this;\r\n this.openSettingsDialog(this.tableSettingsDialog, this.columns, function (result) {\r\n _this.columns = result;\r\n var allColumns = _this.getAllColumns;\r\n for (var i = 0; i < _this.columns.length; i++) {\r\n try {\r\n allColumns.find(x => x.id == _this.columns[i].id).hidden = _this.columns[i].hidden;\r\n }\r\n catch (e) {\r\n\r\n }\r\n }\r\n _this.refreshSort(_this.sort, _this.columns);\r\n _this.saveSettings(_this.tableLocalStorageKey, _this.columns);\r\n });\r\n }\r\n\r\n private loadFbos() {\r\n this.fboService.getForGroup(this.sharedService.currentUser.groupId).subscribe((data: any[]) => {\r\n this.fbos = data.map((x) => ({ fbo: x.fbo, acukwikFboHandlerId: x.acukwikFboHandlerId, icao: x.icao }));\r\n for (let fbo of this.fbos) {\r\n var columnForAirport: ColumnType = { id: fbo.icao, name: 'Visits to ' + fbo.icao };\r\n var columnForFbo: ColumnType = { id: fbo.icao + fbo.acukwikFboHandlerId, name: 'Visits to ' + fbo.fbo + ' ' + fbo.icao };\r\n this.dynamicColumns.push(columnForAirport);\r\n this.dynamicColumns.push(columnForFbo);\r\n }\r\n this.dynamicColumns = this.dynamicColumns.filter((v,i,a)=>a.findIndex(v2=>(v2.id===v.id))===i)\r\n\r\n this.refreshData(true);\r\n });\r\n }\r\n\r\n //Builds the datasource from the data - creating dynamic columns for each distinct FBO and airport loaded\r\n private refreshDataSource() {\r\n var dataSource = [];\r\n\r\n var filteredData = this.data.filter(\r\n (x) => { return (!this.isCommercialInvisible)? true: !isCommercialAircraftInFlightNumbers(x.flightNumbers)}\r\n );\r\n\r\n for (let item of filteredData) {\r\n\r\n var newRow = {\r\n company: item.company,\r\n tailNumber: item.tailNumber,\r\n aircraftType: item.aircraftType,\r\n aircraftTypeCode: item.aircraftTypeCode,\r\n customerInfoByGroupId: item.customerInfoByGroupId,\r\n };\r\n\r\n for (let airport of item.visitsByAirport) {\r\n\r\n if (this.selectedFbos.length > 0 && !this.selectedFbos.some(x => x.acukwikFboHandlerId == airport.acukwikFboHandlerId))\r\n continue;\r\n\r\n var columnForAirport: ColumnType = { id: airport.icao, name: 'Visits to ' + airport.icao };\r\n var columnForFbo: ColumnType = { id: airport.icao + airport.acukwikFboHandlerId, name: 'Visits to ' + airport.fboName + ' ' + airport.icao };\r\n newRow[columnForAirport.id] = !airport.visitsToAirport ? 0 : airport.visitsToAirport;\r\n newRow[columnForFbo.id] = !airport.visitsToFbo ? 0 : airport.visitsToFbo;\r\n }\r\n dataSource.push(newRow);\r\n }\r\n this.setVirtualScrollVariables(this.paginator, this.sort, dataSource)\r\n\r\n if (!this.dataSource) {\r\n this.dataSource.filteredData = [];\r\n }\r\n\r\n this.fbos.sort((a, b) => (a.fbo)?.localeCompare(b.fbo));\r\n this.columns = this.getAllColumns;\r\n }\r\n changeIcaoFilter($event: string) {\r\n this.icao = $event;\r\n this.setColumns();\r\n this.refreshData();\r\n }\r\n applyPresetDateFilter(filter: SelectedDateFilter) {\r\n this.filterEndDate = filter.limitDate;\r\n this.filterStartDate = filter.offsetDate;\r\n this.refreshData();\r\n }\r\n private setColumns(){\r\n this.columns = (this.icao == this.sharedService.currentUser.icao) ? this.getAllColumns : this.filteredColumns;\r\n }\r\n get filteredColumns() {\r\n return this.getAllColumns.filter((column) => {\r\n return !this.hiddenColumns.includes(column.id);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n Company\r\n \r\n \r\n \r\n \r\n {{ info.company }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Tail #\r\n \r\n \r\n \r\n \r\n {{ info.tailNumber }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Aircraft\r\n \r\n \r\n \r\n \r\n {{ info.aircraftType }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{\r\n dynamicColumns[dynamicColumnIndex].name\r\n }}\r\n \r\n \r\n \r\n \r\n {{\r\n !info[dynamicColumns[dynamicColumnIndex].id]\r\n ? 0\r\n : info[dynamicColumns[dynamicColumnIndex].id]\r\n }}\r\n \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 {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport {\r\n CsvExportModalComponent,\r\n ICsvExportModalData,\r\n} from 'src/app/shared/components/csv-export-modal/csv-export-modal.component';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvent from '../../../constants/sharedEvents';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\nimport { Subscribable, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-group-analytics-market-share',\r\n styleUrls: ['./group-analytics-market-share.component.scss'],\r\n templateUrl: './group-analytics-market-share.component.html',\r\n})\r\nexport class GroupAnalyticsMarketShareComponent\r\n implements OnInit, AfterViewInit, OnDestroy\r\n{\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n filterStartDate: Date;\r\n filterEndDate: Date;\r\n icao: string;\r\n fbo: string;\r\n icaoChangedSubscription: any;\r\n chartName = 'group-analytics-market-share';\r\n dataSource: MatTableDataSource;\r\n\r\n tableLocalStorageKey: string;\r\n columns: ColumnType[] = [];\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService,\r\n private exportDialog: MatDialog,\r\n private tableSettingsDialog: MatDialog\r\n ) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n\r\n this.filterStartDate = new Date(\r\n moment().add(-1, 'M').format('MM/DD/YYYY')\r\n );\r\n this.filterEndDate = new Date(moment().format('MM/DD/YYYY'));\r\n\r\n this.initColumns();\r\n }\r\n\r\n get visibleColumns() {\r\n return (\r\n this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id) || []\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n\r\n this.saveSettings();\r\n });\r\n this.refreshData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.icaoChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvent.icaoChangedEvent) {\r\n this.icao = this.sharedService.currentUser.icao;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n if (this.icaoChangedSubscription) {\r\n this.icaoChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n\r\n fetchData(startDate: Date, endDate: Date) {\r\n return this.fuelreqsService.getMarketShareFbosAirports(\r\n this.sharedService.currentUser.groupId,\r\n startDate,\r\n endDate\r\n );\r\n }\r\n\r\n initColumns() {\r\n this.tableLocalStorageKey = `group-analytics-market-share-${this.sharedService.currentUser.groupId}`;\r\n if (localStorage.getItem(this.tableLocalStorageKey)) {\r\n this.columns = JSON.parse(\r\n localStorage.getItem(this.tableLocalStorageKey)\r\n );\r\n\r\n if (this.columns.length == 4) {\r\n var yourOrdersColumn = { id: 'yourOrders', name: 'Your Orders at Airport: Directs' };\r\n this.columns.push(yourOrdersColumn);\r\n }\r\n } else {\r\n this.columns = [\r\n {\r\n id: 'icao',\r\n name: 'ICAO',\r\n },\r\n {\r\n id: 'airportOrders',\r\n name: 'Total Orders at Airport',\r\n },\r\n {\r\n id: 'fboOrders',\r\n name: 'Your Orders at Airport: Contract Fuel Vendors',\r\n },\r\n {\r\n id: 'yourOrders',\r\n name: 'Your Orders at Airport: Directs',\r\n },\r\n {\r\n id: 'marketShare',\r\n name: 'Market Share',\r\n },\r\n ];\r\n }\r\n }\r\n\r\n refreshData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fetchData(this.filterStartDate, this.filterEndDate).subscribe(\r\n (data: any) => {\r\n this.dataSource = new MatTableDataSource(data);\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'lastPullDate':\r\n if (item[property] === 'N/A') {\r\n if (this.sort.direction === 'asc') {\r\n return new Date(8640000000000000);\r\n } else {\r\n return new Date(-8640000000000000);\r\n }\r\n }\r\n return new Date(item[property]);\r\n default:\r\n return item[property];\r\n }\r\n };\r\n this.dataSource.sort = this.sort;\r\n },\r\n () => {},\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n onExport() {\r\n const dialogRef = this.exportDialog.open<\r\n CsvExportModalComponent,\r\n ICsvExportModalData,\r\n ICsvExportModalData\r\n >(CsvExportModalComponent, {\r\n data: {\r\n filterEndDate: this.filterEndDate,\r\n filterStartDate: this.filterStartDate,\r\n title: 'Export Customer Statistics',\r\n },\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.exportCsv(result.filterStartDate, result.filterEndDate);\r\n });\r\n }\r\n\r\n exportCsv(startDate: Date, endDate: Date) {\r\n this.fetchData(startDate, endDate).subscribe((data: any[]) => {\r\n const exportData = data.map((item) => {\r\n const row = {\r\n ICAO: item.icao,\r\n 'Market Share': item.marketShare + '%',\r\n 'Total Orders at Airport': item.airportOrders,\r\n 'Your Orders at Airport: Contract Fuel Vendors': item.fboOrders,\r\n 'Your Orders at Airport: Directs': item.yourOrders\r\n };\r\n return row;\r\n });\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData); // converts a DOM TABLE element to a worksheet\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Market Share by Airport');\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, 'Market Share by Airport.xlsx');\r\n });\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.refreshSort();\r\n this.saveSettings();\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n ICAO\r\n \r\n \r\n {{ info.icao }}\r\n \r\n \r\n Total Orders at Airport\r\n \r\n \r\n \r\n {{ info.airportOrders }}\r\n \r\n \r\n \r\n Your Orders at Airport: Contract Fuel\r\n Vendors\r\n \r\n \r\n {{ info.fboOrders }}\r\n \r\n \r\n \r\n Your Orders at Airport: Directs\r\n \r\n \r\n \r\n {{ info.yourOrders }}\r\n \r\n \r\n \r\n Market Share\r\n \r\n \r\n \r\n {{ info.marketShare }}%\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import {\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { forEach, map, sortBy } from 'lodash';\r\nimport * as XLSX from 'xlsx';\r\n\r\nimport { AirportWatchService } from '../../../services/airportwatch.service';\r\n// Components\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'selectAll',\r\n name: 'Select All',\r\n },\r\n {\r\n id: 'company',\r\n name: 'Company',\r\n sort: 'asc',\r\n },\r\n {\r\n id: 'isFuelerLinxCustomer',\r\n name: 'FuelerLinx Network',\r\n },\r\n {\r\n id: 'certificateTypeDescription',\r\n name: 'Certificate Type',\r\n },\r\n];\r\n\r\n@Component({\r\n selector: 'app-group-customers-grid',\r\n styleUrls: ['./group-customers-grid.component.scss'],\r\n templateUrl: './group-customers-grid.component.html',\r\n})\r\nexport class GroupCustomersGridComponent implements OnInit {\r\n // Input/Output Bindings\r\n @Input() customersData: any[];\r\n\r\n @Output() editCustomerClicked = new EventEmitter();\r\n @Output() customerDeleted = new EventEmitter();\r\n\r\n // Members\r\n @ViewChild('customerTableContainer') table: ElementRef;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n tableLocalStorageKey = 'group-customer-manager-table-settings';\r\n\r\n customersDataSource: any = null;\r\n customerFilterType: number = undefined;\r\n selectAll = false;\r\n selectedRows: number;\r\n pageIndex = 0;\r\n pageSize = 100;\r\n columns: ColumnType[] = [];\r\n airportWatchStartDate: Date = new Date();\r\n\r\n LICENSE_KEY = '9eef62bd-4c20-452c-98fd-aa781f5ac111';\r\n\r\n results = '[]';\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private tableSettingsDialog: MatDialog,\r\n private airportWatchService: AirportWatchService\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (localStorage.getItem(this.tableLocalStorageKey)) {\r\n this.columns = JSON.parse(\r\n localStorage.getItem(this.tableLocalStorageKey)\r\n );\r\n } else {\r\n this.columns = initialColumns;\r\n }\r\n\r\n this.refreshCustomerDataSource();\r\n\r\n //this.airportWatchService.getStartDate().subscribe((date) => {\r\n // this.airportWatchStartDate = new Date(date);\r\n //});\r\n this.airportWatchStartDate = new Date(\"10/6/2022\");\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n onPageChanged(event: any) {\r\n localStorage.setItem('pageIndex', event.pageIndex);\r\n sessionStorage.setItem(\r\n 'pageSizeValue',\r\n this.paginator.pageSize.toString()\r\n );\r\n this.selectAll = false;\r\n forEach(this.customersData, (customer) => {\r\n customer.selectAll = false;\r\n });\r\n }\r\n\r\n selectAction() {\r\n const pageCustomersData = this.customersDataSource.connect().value;\r\n forEach(pageCustomersData, (customer) => {\r\n customer.selectAll = this.selectAll;\r\n });\r\n this.selectedRows = this.selectAll ? pageCustomersData.length : 0;\r\n }\r\n\r\n selectUnique() {\r\n if (this.selectedRows === this.customersData.length) {\r\n this.selectAll = false;\r\n this.selectedRows = this.selectedRows - 1;\r\n }\r\n }\r\n\r\n exportCustomersToExcel() {\r\n // Export the filtered results to an excel spreadsheet\r\n const filteredList = this.customersDataSource.filteredData.filter(\r\n (item) => item.selectAll === true\r\n );\r\n let exportData;\r\n if (filteredList.length > 0) {\r\n exportData = filteredList;\r\n } else {\r\n exportData = this.customersDataSource.filteredData;\r\n }\r\n exportData = map(exportData, (item) => ({\r\n 'Certificate Type': item.certificateTypeDescription,\r\n Company: item.company,\r\n 'FuelerLinx Network': item.isFuelerLinxCustomer ? 'YES' : 'NO',\r\n }));\r\n exportData = sortBy(exportData, [(item) => item.Company.toLowerCase()]);\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData); // converts a DOM TABLE element to a worksheet\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, 'Customers');\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, 'Customers.xlsx');\r\n }\r\n\r\n anySelected() {\r\n const filteredList = this.customersData.filter(\r\n (item) => item.selectAll === true\r\n );\r\n return filteredList.length > 0;\r\n }\r\n\r\n getTableColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id);\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.columns = [...result];\r\n this.refreshSort();\r\n this.saveSettings();\r\n }\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n\r\n private refreshCustomerDataSource() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n this.paginator.pageIndex = 0;\r\n this.saveSettings();\r\n });\r\n if (!this.customersDataSource) {\r\n this.customersDataSource = new MatTableDataSource();\r\n }\r\n this.customersDataSource.data = this.customersData;\r\n this.sort.active = 'company';\r\n this.customersDataSource.sort = this.sort;\r\n this.customersDataSource.paginator = this.paginator;\r\n }\r\n\r\n private refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: '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 Export Selected\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Export\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
Select
\r\n
All
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n Company\r\n \r\n \r\n \r\n \r\n {{ customer.company }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
FuelerLinx
\r\n
Network
\r\n
\r\n
\r\n \r\n \r\n {{ customer.isFuelerLinxCustomer ? \"YES\" : \"NO\" }}\r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
Certificate
\r\n
Type
\r\n
\r\n
\r\n \r\n \r\n {{ customer.certificateTypeDescription }}\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\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n@Component({\r\n selector: 'app-group-customers-home',\r\n styleUrls: ['./group-customers-home.component.scss'],\r\n templateUrl: './group-customers-home.component.html',\r\n})\r\nexport class GroupCustomersHomeComponent implements OnInit {\r\n // Public Members\r\n pageTitle = 'Customers';\r\n customersData: any[];\r\n chartName = 'Customers';\r\n\r\n constructor(\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private sharedService: SharedService,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n \r\n this.loadCustomers();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n // Private Methods\r\n private loadCustomers() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.customersData = null;\r\n this.customerInfoByGroupService\r\n .getCustomersViewModelByGroup(this.sharedService.currentUser.groupId)\r\n .subscribe((data: any) => {\r\n this.customersData = data;\r\n this.ngxLoader.stopLoader(this.chartName);\r\n\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, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport {\r\n accountTypeChangedEvent,\r\n fboChangedEvent,\r\n} from 'src/app/constants/sharedEvents';\r\nimport { UserRole } from 'src/app/enums/user-role';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { GroupsService } from 'src/app/services/groups.service';\r\nimport { ManageConfirmationComponent } from 'src/app/shared/components/manage-confirmation/manage-confirmation.component';\r\nimport { NotificationComponent } from 'src/app/shared/components/notification/notification.component';\r\n\r\n@Component({\r\n selector: 'app-group-fbos-grid',\r\n templateUrl: './group-fbos-grid.component.html',\r\n styleUrls: ['./group-fbos-grid.component.scss'],\r\n})\r\nexport class GroupFbosGridComponent implements OnInit {\r\n @Input() dataSource: any;\r\n @Input() isNetworkFbo: boolean; \r\n\r\n displayedColumns = [\r\n 'icao',\r\n 'fbo',\r\n 'pricingExpired',\r\n 'needAttentionCustomers',\r\n 'lastLogin',\r\n 'users',\r\n 'quotes30Days',\r\n 'orders30Days',\r\n 'accountExpired',\r\n 'accountType',\r\n 'actions',\r\n ];\r\n\r\n searchValue = '';\r\n tableLocalStorageFilterKey = 'conductor-group-grid-filter';\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n private notification: MatDialog,\r\n private manageDialog: MatDialog,\r\n private groupsService: GroupsService,\r\n private router: Router,\r\n ) {}\r\n\r\n ngOnInit() {}\r\n editFBO(fbo: any) {\r\n this.router.navigate(['/default-layout/fbos/' + fbo.oid]);\r\n }\r\n manageFBO(fbo: any) {\r\n if (!fbo.active) {\r\n this.notification.open(NotificationComponent, {\r\n data: {\r\n text: \"You can't manage an inactive fbo!\",\r\n title: 'Inactive fbo',\r\n },\r\n });\r\n } else {\r\n const dialogRef = this.manageDialog.open(\r\n ManageConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n description:\r\n 'This will temporarily switch your account to a primary user for this FBO. Would you like to continue?',\r\n fboId: fbo.oid,\r\n title: 'Manage FBO?',\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe(async (result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n this.tableLocalStorageFilterKey,\r\n this.searchValue\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.managerGroupId,\r\n this.sharedService.currentUser.groupId\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.groupId,\r\n fbo.groupId\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.impersonatedrole,\r\n UserRole.Primary\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.conductorFbo,\r\n true\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.fboId,\r\n fbo.oid\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.icao,\r\n fbo.icao\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.accountType,\r\n fbo.accountType\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.isNetworkFbo,\r\n this.isNetworkFbo\r\n );\r\n\r\n var isSingleSourceFbo = await this.groupsService\r\n .isGroupFboSingleSource(fbo.icao)\r\n .toPromise();\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.isSingleSourceFbo,\r\n isSingleSourceFbo\r\n );\r\n\r\n this.sharedService.emitChange(fboChangedEvent);\r\n this.sharedService.emitChange(accountTypeChangedEvent);\r\n\r\n this.router.navigate([\r\n '/default-layout/dashboard-fbo-updated/',\r\n ]);\r\n });\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
ICAO{{ element.icao }}FBO{{ element.fbo }}Pricing Expired\r\n \r\n {{ element.pricingExpired ? \"Expired\" : \"Pricing Live\" }}\r\n \r\n Need Attentions\r\n \r\n {{ element.needAttentionCustomers }} Need Attentions\r\n \r\n Last Login Date\r\n {{ element.lastLogin | date : \"medium\" }}\r\n Users\r\n {{ element.users.length }}\r\n Quotes (last 30 days){{ element.quotes30Days }}Fuel Orders (last 30 days){{ element.orders30Days }}Account Expired\r\n \r\n {{ element.accountExpired ? \"Inactive\" : \"Active\" }}\r\n \r\n Account Type\r\n {{ element.accountType ? \"Freemium\" : \"Premium\" }}\r\n  \r\n \r\n Edit FBO\r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { AcukwikairportsService } from '../../../services/acukwikairports.service';\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { GroupsService } from '../../../services/groups.service';\r\n\r\n@Component({\r\n selector: 'app-groups-dialog-new-group',\r\n styleUrls: ['./groups-dialog-new-group.component.scss'],\r\n templateUrl: './groups-dialog-new-group.component.html',\r\n})\r\nexport class GroupsDialogNewGroupComponent {\r\n step = 1;\r\n type: string;\r\n dataSources: any = {};\r\n public fboAlreadyExists = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private acukwikairportsService: AcukwikairportsService,\r\n private groupsService: GroupsService,\r\n private fboService: FbosService\r\n ) {\r\n data.active = true;\r\n }\r\n\r\n airportValueChanged(airport: any) {\r\n this.data.icao = airport.icao;\r\n this.data.iata = airport.iata;\r\n this.dataSources.acukwikFbos = [];\r\n this.data.acukwikFbo = null;\r\n this.acukwikairportsService\r\n .getAcukwikFboHandlerDetailByIcao(this.data.icao)\r\n .subscribe((result: any) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.dataSources.acukwikFbos.push(...result);\r\n });\r\n }\r\n\r\n public fboSelectionChange() {\r\n this.data.fbo = this.data.acukwikFbo.handlerLongName;\r\n this.data.acukwikFboHandlerId = this.data.acukwikFbo.handlerId;\r\n this.data.group = `${this.data.fbo} - ${this.data.icao}`;\r\n\r\n this.fboService\r\n .getByAcukwikHandlerId(this.data.acukwikFboHandlerId)\r\n .subscribe((response: any) => {\r\n if (!response) {\r\n this.fboAlreadyExists = false;\r\n } else {\r\n this.fboAlreadyExists = true;\r\n }\r\n });\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSaveClick(): void {\r\n if (this.type === 'group') {\r\n this.data.active = true;\r\n this.groupsService.add(this.data).subscribe((data: any) => {\r\n this.dialogRef.close({\r\n data,\r\n type: this.type,\r\n });\r\n });\r\n }\r\n if (this.type === 'fbo') {\r\n this.fboService.addSingleFbo(this.data).subscribe((data: any) => {\r\n this.dialogRef.close({\r\n data,\r\n type: this.type,\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","

Create New Group or FBO

\r\n
\r\n \r\n Group or FBO\r\n \r\n Group \r\n FBO \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n 0\r\n \"\r\n >\r\n \r\n {{ acukwikFbo.handlerLongName }}\r\n \r\n \r\n \r\n Group\r\n \r\n \r\n
\r\n
\r\n This FBO is already registered to a group in FBOLinx.\r\n
\r\n
\r\n
\r\n \r\n Add {{ type === \"group\" ? \"Group\" : \"FBO\" }}\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { DocumentTypeEnum, DocumentTypeEnumDescription } from 'src/app/enums/documents..enum';\r\nimport { DocumentService } from 'src/app/services/documents.service';\r\n\r\n// Services\r\nimport { GroupsService } from '../../../services/groups.service';\r\n\r\n@Component({\r\n selector: 'app-groups-edit',\r\n styleUrls: ['./groups-edit.component.scss'],\r\n templateUrl: './groups-edit.component.html',\r\n})\r\nexport class GroupsEditComponent implements OnInit {\r\n @Output() cancelClicked = new EventEmitter();\r\n @Input() groupInfo: any;\r\n\r\n // Public Members\r\n public pageTitle = 'Edit FBO';\r\n\r\n public currentContact: any;\r\n public contactsData: any;\r\n public documents: any;\r\n public policyAndAgreementGroupExemptions: any;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private groupsService: GroupsService,\r\n private documentService: DocumentService,\r\n private snackBar: MatSnackBar\r\n ) {}\r\n\r\n ngOnInit() {\r\n const id = this.route.snapshot.paramMap.get('id');\r\n if (id) {\r\n this.groupsService.get({ oid: id }).subscribe((data: any) => {\r\n this.groupInfo = data;\r\n });\r\n this.documentService.getRecentsAvailableDocuments(Number(id)).subscribe((data: any) => {\r\n this.documents = data;\r\n });\r\n }\r\n if (sessionStorage.getItem('isNewFbo')) {\r\n sessionStorage.removeItem('isNewFbo');\r\n }\r\n }\r\n // Public Methods\r\n public async saveEdit() {\r\n await this.groupsService.update(this.groupInfo).toPromise();\r\n await this.documentService.updateExemptedDocuments(this.groupInfo.oid, this.documents).toPromise();\r\n this.snackBar.open('Successfully updated!', '', {\r\n duration: 2000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n this.router.navigate(['/default-layout/groups/']);\r\n }\r\n\r\n public cancelEdit() {\r\n this.router.navigate(['/default-layout/groups/']);\r\n }\r\n public getDocumentType(documentType: DocumentTypeEnum){\r\n return DocumentTypeEnumDescription[documentType];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\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 Info
\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
Select documents to exempt:
\r\n

\r\n \r\n {{getDocumentType(doc.documentType)}}\r\n \r\n

\r\n
\r\n
\r\n
\r\n \r\n save\r\n Save Changes\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { Router } from '@angular/router';\r\nimport { Dictionary, groupBy } from 'lodash';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport {\r\n accountTypeChangedEvent,\r\n} from '../../../constants/sharedEvents';\r\nimport { FbosService } from '../../../services/fbos.service';\r\n// Services\r\nimport { GroupsService } from '../../../services/groups.service';\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { ManageConfirmationComponent } from '../../../shared/components/manage-confirmation/manage-confirmation.component';\r\nimport { NotificationComponent } from '../../../shared/components/notification/notification.component';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport { GroupGridState } from '../../../store/reducers/group';\r\nimport { FbosDialogNewFboComponent } from '../../fbos/fbos-dialog-new-fbo/fbos-dialog-new-fbo.component';\r\n// Components\r\nimport { GroupsDialogNewGroupComponent } from '../groups-dialog-new-group/groups-dialog-new-group.component';\r\nimport { GroupsMergeDialogComponent } from '../groups-merge-dialog/groups-merge-dialog.component';\r\nimport { AssociationsDialogNewAssociationComponent } from '../../associations/associations-dialog-new-association/associations-dialog-new-association.component';\r\nimport { ManageFboGroupsService } from 'src/app/services/managefbo.service';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { accountStatusType, AccountType, userAccountType, UserRole } from 'src/app/enums/user-role';\r\nimport { GroupFboViewModel } from 'src/app/models/groups';\r\nimport {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { GridBase } from 'src/app/services/tables/GridBase';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { GroupFbosGridComponent } from '../group-fbos-grid/group-fbos-grid.component';\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'groupName',\r\n name: 'Group',\r\n sort: 'asc',\r\n },\r\n {\r\n id: 'expiredFboPricingCount',\r\n name: 'Pricing Expired',\r\n },\r\n {\r\n id: 'needAttentionCustomers',\r\n name: 'Need Attentions',\r\n },\r\n {\r\n id: 'lastLogin',\r\n name: 'Last Login Date',\r\n },\r\n {\r\n id: 'active',\r\n name: 'Active',\r\n },\r\n {\r\n id: 'users',\r\n name: 'Users',\r\n },\r\n {\r\n id: 'quotes30Days',\r\n name: 'Quotes (last 30 days)',\r\n },\r\n {\r\n id: 'orders30Days',\r\n name: 'Fuel Orders (last 30 days)',\r\n },\r\n {\r\n id: 'expiredFboAccountCount',\r\n name: 'Accounts Expired',\r\n }\r\n];\r\n\r\n@Component({\r\n selector: 'app-groups-grid',\r\n styleUrls: ['./groups-grid.component.scss'],\r\n templateUrl: './groups-grid.component.html',\r\n animations: [\r\n trigger('detailExpand', [\r\n state('collapsed', style({ height: '0px', minHeight: '0' })),\r\n state('expanded', style({ height: '*' })),\r\n transition(\r\n 'expanded <=> collapsed',\r\n animate('225ms cubic-bezier(0.4, 0.0, 0.2, 1)')\r\n ),\r\n ]),\r\n ],\r\n})\r\nexport class GroupsGridComponent extends GridBase implements OnInit {\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild(GroupFbosGridComponent) groupFbosGridComponent: GroupFbosGridComponent;\r\n\r\n\r\n // Input/Output Bindings\r\n @Input() groupsFbosData: GroupFboViewModel;\r\n @Input() groupGridState: GroupGridState;\r\n @Output() editGroupClicked = new EventEmitter();\r\n @Output() deleteGroupClicked = new EventEmitter();\r\n\r\n // Members\r\n pageTitle = 'Groups';\r\n searchValue = '';\r\n\r\n groupAccountType = accountStatusType;\r\n fboActiveAccountType = accountStatusType;\r\n fboAccountType = userAccountType;\r\n\r\n groupDataSource: any[];\r\n fboDataSourceDictionary: Dictionary;\r\n\r\n tableLocalStorageKey = 'conductor-group-grid-settings';\r\n tableLocalStorageFilterKey = 'conductor-group-grid-filter';\r\n columns: ColumnType[] = [];\r\n\r\n expandedElement: any = null;\r\n columnsToDisplay: string[] = [];\r\n dataColumns: string[] = [];\r\n\r\n customColumContent = [\r\n 'expiredFboPricingCount',\r\n 'needAttentionCustomers',\r\n 'active',\r\n 'lastLogin',\r\n 'users',\r\n 'expiredFboAccountCount',\r\n ];\r\n\r\n dataSource = new MatTableDataSource();\r\n selection = new SelectionModel(true, []);\r\n\r\n isCustomContent(columnId) {\r\n return this.customColumContent.includes(columnId);\r\n }\r\n constructor(\r\n private router: Router,\r\n private viewContainerRef: ViewContainerRef,\r\n private groupsService: GroupsService,\r\n private fbosService: FbosService,\r\n private sharedService: SharedService,\r\n private deleteGroupDialog: MatDialog,\r\n private deleteFboDialog: MatDialog,\r\n private newGroupDialog: MatDialog,\r\n private newFboDialog: MatDialog,\r\n private notification: MatDialog,\r\n private manageDialog: MatDialog,\r\n private mergeGroupsDialog: MatDialog,\r\n private tableSettingsDialog: MatDialog,\r\n private snackBar: MatSnackBar,\r\n private addAssociationDialog: MatDialog,\r\n private manageFboGroupsService: ManageFboGroupsService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.refreshGrid();\r\n }\r\n\r\n refreshGrid() {\r\n this.groupDataSource = this.groupsFbosData.groups;\r\n this.fboDataSourceDictionary = groupBy(\r\n this.groupsFbosData.fbos,\r\n (gf) => {\r\n return gf.groupId;\r\n }\r\n );\r\n\r\n this.columns = this.getClientSavedColumns(\r\n this.tableLocalStorageKey,\r\n initialColumns\r\n );\r\n\r\n if (this.groupGridState.filter) {\r\n this.applyFilter(this.groupGridState.filter);\r\n } else if (localStorage.getItem(this.tableLocalStorageFilterKey)) {\r\n this.applyFilter(\r\n localStorage.getItem(this.tableLocalStorageFilterKey)\r\n );\r\n } else {\r\n this.applyFilter('');\r\n }\r\n\r\n this.setTableColumns();\r\n\r\n this.setVirtualScrollVariables(\r\n this.paginator,\r\n this.sort,\r\n this.groupDataSource\r\n );\r\n }\r\n //todo: ot might be moved to base grid\r\n private setTableColumns() {\r\n this.dataColumns = this.getFilteredTableColumns(this.columns);\r\n this.columnsToDisplay = this.getFilteredTableColumns(this.columns);\r\n this.columnsToDisplay.push('actions');\r\n this.columnsToDisplay.unshift('expandIcon', 'select');\r\n }\r\n getColumnDisplayString(columnId){\r\n let column = this.columns.filter(obj => {\r\n return obj.id == columnId\r\n });\r\n return column[0]?.name ?? '';\r\n }\r\n deleteGroup(record) {\r\n const dialogRef = this.deleteGroupDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n fullDescription:\r\n 'You are about to remove this group. This will remove the fbos and all the other data related to the group. Are you sure?',\r\n item: record,\r\n includeThis: true,\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.deleteGroupClicked.emit({\r\n isDeletingGroup: true,\r\n });\r\n\r\n const deleteIndex = this.groupsFbosData.groups.findIndex(\r\n (group) => group.oid === record.oid\r\n );\r\n this.groupsService.remove(record).subscribe(() => {\r\n this.groupsFbosData.groups.splice(deleteIndex, 1);\r\n this.snackBar.open(record.groupName + ' is deleted', '', {\r\n duration: 2000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n this.refreshGrid();\r\n this.sharedService.emitChange('group deleted');\r\n });\r\n });\r\n }\r\n\r\n deleteFbo(record) {\r\n const dialogRef = this.deleteFboDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n description: 'FBO',\r\n item: record,\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.fbosService.remove(record).subscribe(() => {\r\n debugger;\r\n const fboIndexaux = this.fboDataSourceDictionary[\r\n record.groupId\r\n ].findIndex((fbo) => fbo.oid === record.oid);\r\n this.fboDataSourceDictionary[record.groupId].splice(\r\n fboIndexaux,\r\n 1\r\n );\r\n\r\n let dicCpy = Object.assign(\r\n {},\r\n this.fboDataSourceDictionary[record.groupId]\r\n );\r\n this.fboDataSourceDictionary[record.groupId] = Object.assign(\r\n {},\r\n dicCpy\r\n );\r\n\r\n this.snackBar.open(record.fbo + ' is deleted', '', {\r\n duration: 2000,\r\n panelClass: ['blue-snackbar'],\r\n });\r\n });\r\n });\r\n }\r\n\r\n addNewGroupOrFbo() {\r\n const dialogRef = this.newGroupDialog.open(\r\n GroupsDialogNewGroupComponent,\r\n {\r\n data: {\r\n initialSetupPhase: true,\r\n oid: 0,\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n if (result.type === 'group') {\r\n this.editGroupClicked.emit({\r\n group: result.data,\r\n searchValue: this.searchValue,\r\n });\r\n } else {\r\n this.groupFbosGridComponent.editFBO(result);\r\n }\r\n });\r\n }\r\n\r\n addNewFbo(group: any) {\r\n const dialogRef = this.newFboDialog.open(FbosDialogNewFboComponent, {\r\n data: {\r\n groupId: group.oid,\r\n initialSetupPhase: true,\r\n oid: 0,\r\n },\r\n width: '450px',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result) {\r\n this.groupFbosGridComponent.editFBO(result);\r\n }\r\n });\r\n }\r\n manageGroup(group: any) {\r\n if (!group.active) {\r\n this.notification.open(NotificationComponent, {\r\n data: {\r\n text: \"You can't manage an inactive group!\",\r\n title: 'Inactive group',\r\n },\r\n });\r\n } else {\r\n const dialogRef = this.manageDialog.open(\r\n ManageConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n description:\r\n 'This will temporarily switch your account to a group admin for this group. Would you like to continue?',\r\n group: true,\r\n title: 'Manage Group?',\r\n },\r\n width: '450px',\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n localStorage.setItem(\r\n this.tableLocalStorageFilterKey,\r\n this.searchValue\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.managerGroupId,\r\n this.sharedService.currentUser.groupId.toString()\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.groupId,\r\n group.oid\r\n );\r\n\r\n this.sharedService.setCurrentUserPropertyValue(\r\n localStorageAccessConstant.impersonatedrole,\r\n UserRole.GroupAdmin\r\n );\r\n\r\n this.sharedService.emitChange(accountTypeChangedEvent);\r\n\r\n this.router.navigate(['/default-layout/fbos/']);\r\n });\r\n }\r\n }\r\n\r\n mergeGroups() {\r\n const dialogRef = this.mergeGroupsDialog.open(\r\n GroupsMergeDialogComponent,\r\n {\r\n data: {\r\n groups: this.selection.selected,\r\n },\r\n width: '450px',\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.selection.clear();\r\n\r\n this.groupsFbosData.groups = this.groupsFbosData.groups.filter(\r\n (group) =>\r\n !result.groups.find(\r\n (bg) =>\r\n bg.oid !== result.baseGroupId &&\r\n bg.oid === group.oid\r\n )\r\n );\r\n this.groupDataSource = this.groupsFbosData.groups;\r\n\r\n this.dataSource.data = this.groupDataSource;\r\n });\r\n }\r\n\r\n addAssociation() {\r\n const dialogRef = this.addAssociationDialog.open(\r\n AssociationsDialogNewAssociationComponent,\r\n {\r\n width: '450px',\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n });\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.searchValue = filterValue;\r\n localStorage.setItem(this.tableLocalStorageFilterKey, filterValue);\r\n\r\n const {filteredFbos, filteredGroups} = this.filterAccountTypeAndStatus();\r\n\r\n if (!filterValue) {\r\n this.groupDataSource = filteredGroups;\r\n this.dataSource.data = this.groupDataSource;\r\n return;\r\n }\r\n\r\n const firstFilteredFbos = filteredFbos.filter(\r\n (fbo) =>\r\n this.ifStringContains(fbo.icao, filterValue) ||\r\n this.ifStringContains(fbo.fbo, filterValue) ||\r\n fbo.users?.find(\r\n (user) =>\r\n this.ifStringContains(\r\n user.firstName + ' ' + user.lastName,\r\n filterValue\r\n ) || this.ifStringContains(user.username, filterValue)\r\n )\r\n );\r\n\r\n const secondFilteredGroups = filteredGroups.filter(\r\n (group) =>\r\n this.ifStringContains(group.groupName, filterValue) ||\r\n group.users?.find(\r\n (user) =>\r\n this.ifStringContains(\r\n user.firstName + ' ' + user.lastName,\r\n filterValue\r\n ) || this.ifStringContains(user.username, filterValue)\r\n ) ||\r\n firstFilteredFbos.find((fbo) => fbo.groupId === group.oid)\r\n );\r\n\r\n this.groupDataSource = secondFilteredGroups;\r\n\r\n this.dataSource.data = this.groupDataSource;\r\n }\r\n private filterAccountTypeAndStatus() {\r\n let filteredFbos = this.groupsFbosData.fbos.filter(\r\n (fbo) =>\r\n (this.fboActiveAccountType === 'all' ||\r\n (this.fboActiveAccountType === 'active' && !fbo.accountExpired) ||\r\n (this.fboActiveAccountType === 'inactive' && fbo.accountExpired))\r\n &&\r\n (\r\n (this.fboAccountType === 'all' ||\r\n (this.fboAccountType === 'premium' && !fbo.accountType) ||\r\n (this.fboAccountType === 'freemium' && fbo.accountType))\r\n )\r\n );\r\n let filteredGroups = this.groupsFbosData.groups.filter(\r\n (group) =>\r\n (this.fboAccountType == \"freemium\" || this.fboAccountType == \"premium\") ? ((\r\n (this.fboAccountType == \"freemium\" && !group.hasPremiumFbos) || (this.fboAccountType == \"premium\" && group.hasPremiumFbos))\r\n && group.fboCount > 0 && (this.fboActiveAccountType == \"all\" || ((this.fboActiveAccountType == \"active\" && group.hasActiveFbos) || this.fboActiveAccountType == \"inactive\" && !group.hasActiveFbos))) :\r\n (this.groupAccountType === 'all' ||\r\n (this.groupAccountType === 'active' && group.active) ||\r\n (this.groupAccountType == 'inactive' && !group.active))\r\n );\r\n return {filteredFbos, filteredGroups};\r\n }\r\n editGroup(group: any) {\r\n this.editGroupClicked.emit({\r\n group,\r\n searchValue: this.searchValue,\r\n });\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: [...this.columns],\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.setTableColumns();\r\n\r\n this.refreshSort(this.sort, this.columns);\r\n\r\n this.saveSettings(this.tableLocalStorageKey, this.columns);\r\n });\r\n }\r\n\r\n filterChanged() {\r\n this.applyFilter(this.searchValue);\r\n }\r\n isValidPricing(data: any) {\r\n return data.expiredFboPricingCount === 0 && data.activeFboCount > 0;\r\n }\r\n getGroupFbos(groupId: number) {\r\n return this.fboDataSourceDictionary[groupId];\r\n }\r\n\r\n isNetworkFbo(groupId: number) {\r\n return this.manageFboGroupsService.isNetworkFbo(\r\n this.groupsFbosData,\r\n groupId\r\n );\r\n }\r\n\r\n //todo: move to utils service\r\n private ifStringContains(str1: string, str2: string) {\r\n return (!str1 ? '' : str1)\r\n .toLowerCase()\r\n .includes((!str2 ? '' : str2).toLowerCase());\r\n }\r\n\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n if (this.isAllSelected()) {\r\n this.selection.clear();\r\n return;\r\n }\r\n\r\n this.selection.select(...this.dataSource.data);\r\n }\r\n /** The label for the checkbox on the passed row */\r\n checkboxLabel(row?: any): string {\r\n if (!row) {\r\n return `${this.isAllSelected() ? 'deselect' : 'select'} all`;\r\n }\r\n return `${this.selection.isSelected(row) ? 'deselect' : 'select'} row ${\r\n row.position + 1\r\n }`;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n Group Status\r\n \r\n All\r\n Active\r\n Inactive\r\n \r\n \r\n\r\n \r\n FBO Active Status\r\n \r\n All\r\n Active\r\n Inactive\r\n \r\n \r\n\r\n \r\n FBO Account Type\r\n \r\n All\r\n Premium\r\n Freemium\r\n \r\n \r\n\r\n \r\n merge_type\r\n Merge Groups\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n  \r\n \r\n \r\n keyboard_arrow_down\r\n keyboard_arrow_up\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ getColumnDisplayString(column) }} \r\n \r\n \r\n \r\n \r\n {{ data[column] }}\r\n \r\n \r\n \r\n {{\r\n isValidPricing(data)\r\n ? \"All Pricing Live\"\r\n : data.activeFboCount > 0\r\n ? data.expiredFboPricingCount +\r\n \" of \" +\r\n data.activeFboCount +\r\n \" Expired\"\r\n : \"No Active FBOs\"\r\n }}\r\n \r\n \r\n \r\n \r\n {{ data.needAttentionCustomers }} Need Attentions\r\n \r\n \r\n \r\n {{ data.lastLogin | date : \"medium\" }}\r\n \r\n \r\n {{ data.active | booleanToText }}\r\n \r\n \r\n {{ data.users.length }}\r\n \r\n \r\n \r\n {{\r\n data.expiredFboAccountCount == 0 &&\r\n data.fboCount > 0\r\n ? \"All Active\"\r\n : data.fboCount > 0\r\n ? data.expiredFboAccountCount +\r\n \" of \" +\r\n data.fboCount +\r\n \" Inactive\"\r\n : \"No FBOs Found\"\r\n }}\r\n \r\n \r\n \r\n \r\n {{\r\n data.expiredFboAccountCount == 0 &&\r\n data.fboCount > 0\r\n ? \"All Active\"\r\n : data.fboCount > 0\r\n ? data.expiredFboAccountCount +\r\n \" of \" +\r\n data.fboCount +\r\n \" Inactive\"\r\n : \"No FBOs Found\"\r\n }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n Add New\r\n \r\n \r\n \r\n \r\n settings\r\n \r\n \r\n \r\n edit\r\n Edit Group\r\n \r\n \r\n add\r\n Add FBO\r\n \r\n \r\n delete_forever\r\n Delete Group\r\n \r\n \r\n Delete FBO\r\n \r\n \r\n \r\n \r\n delete_forever\r\n {{ fbo.fbo }}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \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 } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\nimport { groupGridSet } from 'src/app/store/actions';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport {\r\n deleteGroupEvent\r\n} from '../../../constants/sharedEvents';\r\n\r\n// Services\r\nimport { GroupsService } from '../../../services/groups.service';\r\nimport { State } from '../../../store/reducers';\r\nimport { GroupGridState } from '../../../store/reducers/group';\r\nimport { getGroupGridState } from '../../../store/selectors';\r\nimport { GroupFboViewModel } from 'src/app/models/groups';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n selector: 'app-groups-home',\r\n styleUrls: ['./groups-home.component.scss'],\r\n templateUrl: './groups-home.component.html',\r\n})\r\nexport class GroupsHomeComponent implements OnInit {\r\n groupsFbosData: GroupFboViewModel;\r\n currentGroup: any;\r\n groupGridState: GroupGridState;\r\n isDeletingGroup: boolean = false;\r\n subscription: any;\r\n chartName = 'Groups';\r\n\r\n constructor(\r\n private router: Router,\r\n private groupsService: GroupsService,\r\n private sharedService: SharedService,\r\n private store: Store,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.loadGroupsFbos();\r\n this.store.select(getGroupGridState).subscribe((state) => {\r\n this.groupGridState = state;\r\n });\r\n\r\n this.subscription = this.sharedService.changeEmitted$.subscribe(\r\n (message) => {\r\n if (message === deleteGroupEvent) {\r\n this.deleteGroup({ isDeletingGroup: false });\r\n }\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n editGroupClicked(event) {\r\n const { group, searchValue } = event;\r\n this.store.dispatch(\r\n groupGridSet({\r\n filter: searchValue,\r\n })\r\n );\r\n\r\n if (this.sharedService.currentUser.role === 3) {\r\n this.sharedService.currentUser.groupId = group.oid;\r\n }\r\n this.router.navigate(['/default-layout/groups/' + group.oid]);\r\n }\r\n\r\n deleteGroup(event) {\r\n const { isDeletingGroup } = event;\r\n this.isDeletingGroup = isDeletingGroup;\r\n }\r\n\r\n saveGroupEditClicked() {\r\n if (this.sharedService.currentUser.role === 3) {\r\n this.sharedService.currentUser.groupId = 0;\r\n }\r\n this.currentGroup = null;\r\n }\r\n\r\n cancelGroupEditClicked() {\r\n if (this.sharedService.currentUser.role === 3) {\r\n this.sharedService.currentUser.groupId = 0;\r\n }\r\n this.currentGroup = null;\r\n }\r\n\r\n private loadGroupsFbos() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.groupsService\r\n .groupsAndFbos()\r\n .subscribe((data: GroupFboViewModel) => {\r\n this.groupsFbosData = data;\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n}\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 } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { GroupsService } from '../../../services/groups.service';\r\n\r\n@Component({\r\n selector: 'app-groups-merge-dialog',\r\n styleUrls: ['./groups-merge-dialog.component.scss'],\r\n templateUrl: './groups-merge-dialog.component.html',\r\n})\r\nexport class GroupsMergeDialogComponent {\r\n baseGroup: number;\r\n loading: boolean;\r\n failed: boolean;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private groupsService: GroupsService\r\n ) {\r\n this.dialogRef.disableClose = true;\r\n this.baseGroup = this.data.groups[0].oid;\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n onSaveClick(): void {\r\n this.loading = true;\r\n const payload = {\r\n baseGroupId: this.baseGroup,\r\n groups: this.data.groups,\r\n };\r\n\r\n this.groupsService.mergeGroups(payload).subscribe(\r\n () => {\r\n this.loading = false;\r\n this.failed = false;\r\n this.dialogRef.close(payload);\r\n },\r\n (err) => {\r\n console.error(err);\r\n this.loading = false;\r\n this.failed = true;\r\n }\r\n );\r\n }\r\n}\r\n","

Merge Groups and FBOs

\r\n
\r\n
\r\n \r\n Base Group\r\n \r\n \r\n {{ group.groupName }}\r\n \r\n \r\n \r\n\r\n Failed to merge groups. Contact the support team!\r\n
\r\n\r\n
* May take a few minutes
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'app-lobby-view',\r\n templateUrl: './lobby-view.component.html',\r\n styleUrls: ['./lobby-view.component.scss'],\r\n})\r\nexport class LobbyViewComponent {\r\n constructor() {}\r\n}\r\n","
\r\n \r\n
\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as moment from 'moment';\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { FbomissedquoteslogService } from '../../../services/fbomissedquoteslog.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n// Shared components\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from '../../../shared/components/table-settings/table-settings.component';\r\nimport { GridBase, csvFileOptions } from 'src/app/services/tables/GridBase';\r\nimport { SelectedDateFilter } from 'src/app/shared/components/preset-date-filter/preset-date-filter.component';\r\nimport { ReportFilterItems } from '../../analytics/analytics-report-popup/report-filters/report-filters.component';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nconst initialColumns: ColumnType[] = [\r\n {\r\n id: 'customerName',\r\n name: 'Flight Dept.',\r\n },\r\n {\r\n id: 'itpMarginTemplate',\r\n name: 'ITP Margin Template',\r\n },\r\n {\r\n id: 'eta',\r\n name: 'ETA'\r\n },\r\n {\r\n id: 'etd',\r\n name: 'ETD',\r\n },\r\n {\r\n id: 'volume',\r\n name: 'Volume (gal.)',\r\n },\r\n {\r\n id: 'tailNumber',\r\n name: 'Tail #',\r\n },\r\n {\r\n id: 'createdDate',\r\n name: 'Created',\r\n sort: 'desc',\r\n },\r\n];\r\n\r\n@Component({\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n selector: 'app-missedorders-grid',\r\n styleUrls: ['./missedorders-grid.component.scss'],\r\n templateUrl: './missedorders-grid.component.html',\r\n})\r\nexport class MissedOrdersGridComponent extends GridBase implements OnInit {\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n chartName = 'missed-orders-table';\r\n\r\n searchText: string = '';\r\n\r\n filtersChanged: Subject = new Subject();\r\n\r\n tableLocalStorageKey = 'missed-orders-table-settings';\r\n\r\n missedOrdersData: any;\r\n missedOrdersDataSource: MatTableDataSource = null;\r\n resultsLength = 0;\r\n columns: ColumnType[] = [];\r\n\r\n dashboardSettings: any;\r\n\r\n resetMissedOrdersSubscription: any;\r\n\r\n csvFileOptions: csvFileOptions = { fileName: 'Missed Orders', sheetName: 'Missed Orders' };\r\n reportHiddenItems: ReportFilterItems[] = [ReportFilterItems.icaoDropDown, ReportFilterItems.isCommercialAircraft];\r\n filtersChangedSubscription: Subscription;\r\n sortChangeSubscription: Subscription;\r\n routeQueryParamsSubscription: Subscription;\r\n constructor(\r\n private sharedService: SharedService,\r\n private tableSettingsDialog: MatDialog,\r\n private ngxLoader: NgxUiLoaderService,\r\n private fboMissedQuotesLogService: FbomissedquoteslogService,\r\n private route: ActivatedRoute\r\n ) {\r\n super();\r\n this.dashboardSettings = this.sharedService.dashboardSettings;\r\n\r\n this.routeQueryParamsSubscription = this.route.queryParams.subscribe((params) => {\r\n if (params.search && params.search) {\r\n this.searchText = params.search;\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => {\r\n this.columns = this.columns.map((column) =>\r\n column.id === this.sort.active\r\n ? { ...column, sort: this.sort.direction }\r\n : {\r\n hidden: column.hidden,\r\n id: column.id,\r\n name: column.name,\r\n }\r\n );\r\n\r\n this.saveSettings();\r\n this.paginator.pageIndex = 0;\r\n });\r\n\r\n if (localStorage.getItem('pageIndexMissedOrders')) {\r\n this.paginator.pageIndex = localStorage.getItem(\r\n 'pageIndexMissedOrders'\r\n ) as any;\r\n } else {\r\n this.paginator.pageIndex = 0;\r\n }\r\n\r\n this.filtersChangedSubscription = this.filtersChanged\r\n .pipe(debounceTime(500))\r\n .subscribe(() => this.refreshTable());\r\n\r\n this.columns = this.getClientSavedColumns(this.tableLocalStorageKey, initialColumns);\r\n\r\n this.refreshTable();\r\n }\r\n\r\n ngOnDestroy() {\r\n this.routeQueryParamsSubscription?.unsubscribe();\r\n this.filtersChangedSubscription?.unsubscribe();\r\n if (this.resetMissedOrdersSubscription) {\r\n this.resetMissedOrdersSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n getTableColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => {\r\n if (column.id == 'customer')\r\n return 'customerName'\r\n return column.id\r\n });\r\n }\r\n get visibleColumns() {\r\n return this.columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => {\r\n if (column.id == 'customer')\r\n return 'customerName'\r\n return column.id\r\n });\r\n }\r\n\r\n refreshTable() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.fetchData().subscribe(\r\n (data: any[]) => {\r\n this.missedOrdersData = data;\r\n\r\n this.refreshDataSource();\r\n },\r\n () => { },\r\n () => {\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n );\r\n }\r\n\r\n fetchData() {\r\n return this.fboMissedQuotesLogService.getMissedOrders(this.sharedService.currentUser.fboId, moment(this.filterStartDate).format('MM/DD/YYYY HH:ss'), moment(this.filterEndDate).format('MM/DD/YYYY HH:ss'));\r\n }\r\n\r\n refreshDataSource() {\r\n let filter = '';\r\n if (this.missedOrdersDataSource) {\r\n filter = this.missedOrdersDataSource.filter;\r\n }\r\n\r\n this.missedOrdersDataSource = new MatTableDataSource(this.missedOrdersData);\r\n this.missedOrdersDataSource.sort = this.sort;\r\n this.missedOrdersDataSource.paginator = this.paginator;\r\n this.missedOrdersDataSource.filter = filter;\r\n this.resultsLength = this.missedOrdersData.length;\r\n\r\n this.refreshSort();\r\n\r\n this.applyFilter(this.searchText);\r\n\r\n this.setVirtualScrollVariables(this.paginator, this.sort, this.missedOrdersDataSource.data);\r\n }\r\n\r\n refreshSort() {\r\n const sortedColumn = this.columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n this.sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n this.sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n this.sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.missedOrdersDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n openSettings() {\r\n const dialogRef = this.tableSettingsDialog.open(\r\n TableSettingsComponent,\r\n {\r\n data: this.columns,\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.columns = [...result];\r\n\r\n this.refreshSort();\r\n this.saveSettings();\r\n });\r\n }\r\n\r\n saveSettings() {\r\n localStorage.setItem(\r\n this.tableLocalStorageKey,\r\n JSON.stringify(this.columns)\r\n );\r\n }\r\n exportCsv() {\r\n this.exportCsvFile(this.columns,this.csvFileOptions.fileName,this.csvFileOptions.sheetName,null);\r\n }\r\n applyPresetDateFilter(filter: SelectedDateFilter) {\r\n this.filterEndDate = filter.limitDate;\r\n this.filterStartDate = filter.offsetDate;\r\n this.refreshTable();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n Flight Dept.\r\n \r\n {{ missedorder.customerName }}\r\n \r\n ITP Margin Template\r\n \r\n {{ missedorder.itpMarginTemplate }}\r\n ETA\r\n {{ missedorder.eta }}\r\n ETD\r\n {{ missedorder.etd }}\r\n \r\n Volume (gal.)\r\n \r\n {{ missedorder.volume }} gal.\r\n \r\n Tail #\r\n \r\n {{ missedorder.tailNumber }}\r\n \r\n Created\r\n \r\n {{ missedorder.createdDate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n","import { CustomerHistoryComponent } from './customer-history/customer-history/customer-history.component';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\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 { CommonModule, CurrencyPipe, DatePipe } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\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 { 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 { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { RouterModule } from '@angular/router';\r\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxChartsModule } from '@swimlane/ngx-charts';\r\nimport { MultiSelectModule as Ej2MultiSelectModule } from '@syncfusion/ej2-angular-dropdowns';\r\nimport {\r\n ColumnMenuService,\r\n DetailRowService,\r\n FilterService,\r\n GridModule,\r\n GroupService,\r\n PageService,\r\n SortService,\r\n ToolbarService,\r\n} from '@syncfusion/ej2-angular-grids';\r\nimport { RichTextEditorAllModule } from '@syncfusion/ej2-angular-richtexteditor';\r\nimport { ResizableModule } from 'angular-resizable-element';\r\nimport { TextMaskModule } from 'angular2-text-mask';\r\nimport {\r\n NgxMatDatetimePickerModule,\r\n NgxMatNativeDateModule,\r\n NgxMatTimepickerModule\r\n} from '@angular-material-components/datetime-picker';\r\n\r\n// Popover\r\nimport { PopoverModule } from 'ngx-smart-popover';\r\nimport { NgxUiLoaderModule } from 'ngx-ui-loader';\r\nimport { DropdownModule } from 'primeng/dropdown';\r\nimport { ListboxModule } from 'primeng/listbox';\r\nimport { MultiSelectModule } from 'primeng/multiselect';\r\n\r\n// Pipes\r\nimport { AppPipesModule } from '../app-pipes.module';\r\nimport { NiComponentsModule } from '../ni-components/ni-components.module';\r\nimport { AccountProfileComponent } from '../shared/components/account-profile/account-profile.component';\r\nimport { AircraftAssignModalComponent } from '../shared/components/aircraft-assign-modal/aircraft-assign-modal.component';\r\nimport { AirportAutocompleteComponent } from '../shared/components/airport-autocomplete/airport-autocomplete.component';\r\nimport { AutocompleteSearchComponent } from '../shared/components/autocomplete-search/autocomplete-search.component';\r\nimport { CloseConfirmationComponent } from '../shared/components/close-confirmation/close-confirmation.component';\r\nimport { CopyConfirmationComponent } from '../shared/components/copy-confirmation/copy-confirmation.component';\r\nimport { CsvExportModalComponent } from '../shared/components/csv-export-modal/csv-export-modal.component';\r\nimport { DeleteConfirmationComponent } from '../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { DistributeEmailsConfirmationComponent } from '../shared/components/distribute-emails-confirmation/distribute-emails-confirmation.component';\r\nimport { DistributionWizardMainComponent } from '../shared/components/distribution-wizard/distribution-wizard-main/distribution-wizard-main.component';\r\nimport { DistributionWizardReviewComponent } from '../shared/components/distribution-wizard/distribution-wizard-review/distribution-wizard-review.component';\r\nimport { EmailContentEditComponent } from '../shared/components/email-content-edit/email-content-edit.component';\r\nimport { EmailContentSelectionComponent } from '../shared/components/email-content-selection/email-content-selection.component';\r\nimport { EmailTemplatesDialogNewTemplateComponent } from '../shared/components/email-templates-dialog-new-template/email-templates-dialog-new-template.component';\r\n// Shared\r\nimport { FboPricesPanelComponent } from '../shared/components/fbo-prices-panel/fbo-prices-panel.component';\r\nimport { FeeAndTaxBreakdownComponent } from '../shared/components/fee-and-tax-breakdown/fee-and-tax-breakdown.component';\r\nimport { ForgotPasswordDialogComponent } from '../shared/components/forgot-password/forgot-password-dialog/forgot-password-dialog.component';\r\nimport { FuelReqsExportModalComponent } from '../shared/components/fuelreqs-export/fuelreqs-export.component';\r\nimport { ManageConfirmationComponent } from '../shared/components/manage-confirmation/manage-confirmation.component';\r\nimport { NotificationComponent } from '../shared/components/notification/notification.component';\r\nimport { PriceBreakdownComponent } from '../shared/components/price-breakdown/price-breakdown.component';\r\nimport { PriceCheckerComponent } from '../shared/components/price-checker/price-checker.component';\r\nimport { PricingExpiredNotificationComponent } from '../shared/components/pricing-expired-notification/pricing-expired-notification.component';\r\nimport { PricingExpiredNotificationGroupComponent } from '../shared/components/pricing-expired-notification-group/pricing-expired-notification-group.component';\r\nimport { ProceedConfirmationComponent } from '../shared/components/proceed-confirmation/proceed-confirmation.component';\r\nimport { SaveConfirmationComponent } from '../shared/components/save-confirmation/save-confirmation.component';\r\nimport { StatisticsOrdersByLocationComponent } from '../shared/components/statistics-orders-by-location/statistics-orders-by-location.component';\r\nimport { StatisticsTotalAircraftComponent } from '../shared/components/statistics-total-aircraft/statistics-total-aircraft.component';\r\nimport { StatisticsTotalCustomersComponent } from '../shared/components/statistics-total-customers/statistics-total-customers.component';\r\nimport { StatisticsTotalOrdersComponent } from '../shared/components/statistics-total-orders/statistics-total-orders.component';\r\nimport { TableColumnFilterComponent } from '../shared/components/table-column-filter/table-column-filter.component';\r\nimport { TableGlobalSearchComponent } from '../shared/components/table-global-search/table-global-search.component';\r\nimport { TableSettingsComponent } from '../shared/components/table-settings/table-settings.component';\r\nimport { ClickStopPropagationDirective } from '../shared/directives/click-stop-propagation.directive';\r\nimport { AircraftsGridComponent } from './aircrafts/aircrafts-grid/aircrafts-grid.component';\r\nimport { AnalyticsAirportArrivalsDepaturesComponent } from './analytics/analytics-airport-arrivals-depatures/analytics-airport-arrivals-depatures.component';\r\nimport { AnalyticsCompaniesQuotesDealTableComponent } from './analytics/analytics-companies-quotes-deal-table/analytics-companies-quotes-deal-table.component';\r\nimport { AnalyticsCustomerBreakdownChartComponent } from './analytics/analytics-customer-breakdown-chart/analytics-customer-breakdown-chart.component';\r\nimport { AnalyticsFuelVendorSourceChartComponent } from './analytics/analytics-fuel-vendor-source-chart/analytics-fuel-vendor-source-chart.component';\r\nimport { AnalyticsHomeComponent } from './analytics/analytics-home/analytics-home.component';\r\nimport { AnalyticsMarketShareFboAirportChartComponent } from './analytics/analytics-market-share-fbo-airport-chart/analytics-market-share-fbo-airport-chart.component';\r\nimport { AnalyticsOrdersOverTimeChartComponent } from './analytics/analytics-orders-over-time-chart/analytics-orders-over-time-chart.component';\r\nimport { AnalyticsOrdersQuoteChartComponent } from './analytics/analytics-orders-quote-chart/analytics-orders-quote-chart.component';\r\nimport { AnalyticsVolumesNearbyAirportChartComponent } from './analytics/analytics-volumes-nearby-airport-chart/analytics-volumes-nearby-airport-chart.component';\r\nimport { AuthtokenComponent } from './auth/authtoken/authtoken.component';\r\nimport { LoginComponent } from './auth/login/login.component';\r\nimport { ResetPasswordComponent } from './auth/reset-password/reset-password.component';\r\nimport { ContactsDialogConfirmContactDeleteComponent } from './contacts/contact-confirm-delete-modal/contact-confirm-delete-modal.component';\r\nimport { ContactsEditComponent } from './contacts/contacts-edit/contacts-edit.component';\r\nimport { ContactsDialogNewContactComponent } from './contacts/contacts-edit-modal/contacts-edit-modal.component';\r\nimport { ContactsGridComponent } from './contacts/contacts-grid/contacts-grid.component';\r\nimport { ContactsHomeComponent } from './contacts/contacts-home/contacts-home.component';\r\nimport { SystemcontactsGridComponent } from './contacts/systemcontacts-grid/systemcontacts-grid.component';\r\nimport { SystemcontactsNewContactModalComponent } from './contacts/systemcontacts-new-contact-modal/systemcontacts-new-contact-modal.component';\r\nimport { DialogConfirmAircraftDeleteComponent } from './customer-aircrafts/customer-aircrafts-confirm-delete-modal/customer-aircrafts-confirm-delete-modal.component';\r\nimport { CustomerAircraftsDialogNewAircraftComponent } from './customer-aircrafts/customer-aircrafts-dialog-new-aircraft/customer-aircrafts-dialog-new-aircraft.component';\r\nimport { CustomerAircraftsEditComponent } from './customer-aircrafts/customer-aircrafts-edit/customer-aircrafts-edit.component';\r\nimport { CustomerAircraftsGridComponent } from './customer-aircrafts/customer-aircrafts-grid/customer-aircrafts-grid.component';\r\nimport { CustomerAircraftSelectModelComponent } from './customer-aircrafts/customer-aircrafts-select-model-dialog/customer-aircrafts-select-model-dialog.component';\r\nimport { CustomerCompanyTypeDialogComponent } from './customers/customer-company-type-dialog/customer-company-type-dialog.component';\r\nimport { CustomerMatchDialogComponent } from './customers/customer-match-dialog/customer-match-dialog.component';\r\nimport { CustomersDialogNewCustomerComponent } from './customers/customers-dialog-new-customer/customers-dialog-new-customer.component';\r\nimport { CustomersEditComponent } from './customers/customers-edit/customers-edit.component';\r\nimport { CustomersGridComponent } from './customers/customers-grid/customers-grid.component';\r\nimport { CustomersHomeComponent } from './customers/customers-home/customers-home.component';\r\nimport { CustomersEditDialogComponent } from './customers/customers-edit-dialog/customers-edit-dialog.component';\r\nimport { DashboardFboComponent } from './dashboards/dashboard-fbo/dashboard-fbo.component';\r\nimport { DashboardFboUpdatedComponent } from './dashboards/dashboard-fbo-updated/dashboard-fbo-updated.component';\r\nimport { DashboardHomeComponent } from './dashboards/dashboard-home/dashboard-home.component';\r\nimport { EmailTemplatesEditComponent } from './email-templates/email-templates-edit/email-templates-edit.component';\r\nimport { EmailTemplatesGridComponent } from './email-templates/email-templates-grid/email-templates-grid.component';\r\nimport { EmailTemplatesHomeComponent } from './email-templates/email-templates-home/email-templates-home.component';\r\nimport { FboPricesHomeComponent } from './fbo-prices/fbo-prices-home/fbo-prices-home.component';\r\nimport { FboPricesUpdateGeneratorComponent } from './fbo-prices/fbo-prices-update-generator/fbo-prices-update-generator.component';\r\nimport { FboPricesUpdateGeneratorGridComponent } from './fbo-prices/fbo-prices-update-generator-grid/fbo-prices-update-generator-grid.component';\r\nimport { FboPricesSelectDefaultTemplateComponent } from './fbo-prices/fbo-prices-select-default-template/fbo-prices-select-default-template.component';\r\nimport { FeeAndTaxSettingsDialogComponent } from './fbo-prices/fee-and-tax-settings-dialog/fee-and-tax-settings-dialog.component';\r\nimport { FbosContactsComponent } from './fbos/fbos-contacts/fbos-contacts.component';\r\nimport { FbosDialogNewFboComponent } from './fbos/fbos-dialog-new-fbo/fbos-dialog-new-fbo.component';\r\nimport { FbosEditComponent } from './fbos/fbos-edit/fbos-edit.component';\r\nimport { FbosGridComponent } from './fbos/fbos-grid/fbos-grid.component';\r\nimport { FbosGridNewFboDialogComponent } from './fbos/fbos-grid-new-fbo-dialog/fbos-grid-new-fbo-dialog.component';\r\nimport { FbosHomeComponent } from './fbos/fbos-home/fbos-home.component';\r\nimport { FlightWatchComponent } from './flight-watch/flight-watch.component';\r\nimport { FlightWatchAircraftInfoComponent } from './flight-watch/aircraft-popup-container/flight-watch-aircraft-info/flight-watch-aircraft-info.component';\r\nimport { FlightWatchMapComponent } from './flight-watch/flight-watch-map/flight-watch-map.component';\r\nimport { FlightWatchAicraftGridComponent } from './flight-watch/flight-watch-aicraft-grid/flight-watch-aicraft-grid.component';\r\nimport { FuelreqsGridComponent } from './fuelreqs/fuelreqs-grid/fuelreqs-grid.component';\r\nimport { FuelreqsHomeComponent } from './fuelreqs/fuelreqs-home/fuelreqs-home.component';\r\nimport { GroupAnalyticsCustomerStatisticsComponent } from './group-analytics/group-analytics-customer-statistics/group-analytics-customer-statistics.component';\r\nimport { GroupAnalyticsEmailPricingDialogComponent } from './group-analytics/group-analytics-email-pricing-dialog/group-analytics-email-pricing-dialog.component';\r\nimport { GroupAnalyticsEmailTemplateDialogComponent } from './group-analytics/group-analytics-email-template-dialog/group-analytics-email-template-dialog.component';\r\nimport { GroupAnalyticsFuelVendorSourcesComponent } from './group-analytics/group-analytics-fuel-vendor-sources/group-analytics-fuel-vendor-sources.component';\r\nimport { GroupAnalyticsGenerateDialogComponent } from './group-analytics/group-analytics-generate-dialog/group-analytics-generate-dialog.component';\r\nimport { GroupAnalyticsHomeComponent } from './group-analytics/group-analytics-home/group-analytics-home.component';\r\nimport { GroupAnalyticsMarketShareComponent } from './group-analytics/group-analytics-market-share/group-analytics-market-share.component';\r\nimport { GroupCustomersGridComponent } from './group-customers/group-customers-grid/group-customers-grid.component';\r\nimport { GroupCustomersHomeComponent } from './group-customers/group-customers-home/group-customers-home.component';\r\nimport { GroupsDialogNewGroupComponent } from './groups/groups-dialog-new-group/groups-dialog-new-group.component';\r\nimport { GroupsEditComponent } from './groups/groups-edit/groups-edit.component';\r\nimport { GroupsGridComponent } from './groups/groups-grid/groups-grid.component';\r\nimport { GroupsHomeComponent } from './groups/groups-home/groups-home.component';\r\nimport { GroupsMergeDialogComponent } from './groups/groups-merge-dialog/groups-merge-dialog.component';\r\nimport { PricingTemplatesDialogCopyTemplateComponent } from './pricing-templates/pricing-template-dialog-copy-template/pricing-template-dialog-copy-template.component';\r\nimport { PricingTemplatesDialogDeleteWarningComponent } from './pricing-templates/pricing-template-dialog-delete-warning-template/pricing-template-dialog-delete-warning.component';\r\nimport { PricingTemplatesDialogNewTemplateComponent } from './pricing-templates/pricing-templates-dialog-new-template/pricing-templates-dialog-new-template.component';\r\nimport { PricingTemplatesEditComponent } from './pricing-templates/pricing-templates-edit/pricing-templates-edit.component';\r\nimport { PricingTemplatesGridComponent } from './pricing-templates/pricing-templates-grid/pricing-templates-grid.component';\r\nimport { PricingTemplatesHomeComponent } from './pricing-templates/pricing-templates-home/pricing-templates-home.component';\r\nimport { RampFeesCategoryComponent } from './ramp-fees/ramp-fees-category/ramp-fees-category.component';\r\nimport { RampFeesDialogNewFeeComponent } from './ramp-fees/ramp-fees-dialog-new-fee/ramp-fees-dialog-new-fee.component';\r\nimport { RampFeesHomeComponent } from './ramp-fees/ramp-fees-home/ramp-fees-home.component';\r\nimport { RampFeesImportInformationComponent } from './ramp-fees/ramp-fees-import-information-dialog/ramp-fees-import-information-dialog.component';\r\nimport { UsersDialogNewUserComponent } from './users/users-dialog-new-user/users-dialog-new-user.component';\r\nimport { UsersEditComponent } from './users/users-edit/users-edit.component';\r\nimport { UsersGridComponent } from './users/users-grid/users-grid.component';\r\nimport { UsersHomeComponent } from './users/users-home/users-home.component';\r\nimport { CustomerTagDialogComponent } from './customers/customer-tag-dialog/customer-tag-dialog.component';\r\nimport { CustomerInfoByGroupHistoryComponent } from './customer-history/customer-info-by-group-history/customer-info-by-group-history.component';\r\nimport { AssociationsDialogNewAssociationComponent } from './associations/associations-dialog-new-association/associations-dialog-new-association.component';\r\nimport { CustomerContactHistoryComponent } from './customer-history/customer-contact-history/customer-contact-history.component';\r\nimport { CustomerAircraftHistoryComponent } from './customer-history/customer-aircraft-history/customer-aircraft-history.component';\r\nimport { CutomerItpMraginHistoryComponent } from './customer-history/cutomer-itp-mragin-history/cutomer-itp-mragin-history.component';\r\nimport { CustomerHistoryDetailsComponent } from './customer-history/customer-history-details/customer-history-details.component';\r\nimport { CustomersAnalyticsComponent } from './customers/customers-analytics/customers-analytics.component';\r\nimport { FboGeofencingHomeComponent } from './fbo-geofencing/fbo-geofencing-home/fbo-geofencing-home.component';\r\nimport { FboGeofencingGridComponent } from './fbo-geofencing/fbo-geofencing-grid/fbo-geofencing-grid.component';\r\nimport { FboGeofencingMapComponent } from './fbo-geofencing/fbo-geofencing-map/fbo-geofencing-map.component';\r\nimport { FboGeofencingDialogNewClusterComponent } from\r\n './fbo-geofencing/fbo-geofencing-dialog-new-cluster/fbo-geofencing-dialog-new-cluster.component';\r\nimport { FboGeofencingDialogNewAirportComponent } from './fbo-geofencing/fbo-geofencing-dialog-new-airport/fbo-geofencing-dialog-new-airport.component';\r\nimport { AntennaStatusHomeComponent } from './antenna-status/antenna-status-home/antenna-status-home.component';\r\nimport { AntennaStatusGridComponent } from './antenna-status/antenna-status-grid/antenna-status-grid.component';\r\nimport { FbosMissedOrdersGridComponent } from './fbos-missed-orders/fbos-missed-orders-grid/fbos-missed-orders-grid.component';\r\nimport { FbosMissedQuotesGridComponent } from './fbos-missed-quotes/fbos-missed-quotes-grid/fbos-missed-quotes-grid.component';\r\nimport { AircraftPopupContainerComponent } from './flight-watch/aircraft-popup-container/aircraft-popup-container.component';\r\nimport { FlightWatchAircraftDataTableComponent } from './flight-watch/flight-watch-aicraft-grid/flight-watch-aircraft-data-table/flight-watch-aircraft-data-table.component';\r\nimport { MissedOrdersGridComponent } from './missed-orders/missedorders-grid/missedorders-grid.component';\r\nimport { FlightWatchMapWrapperComponent } from './flight-watch/flight-watch-map-wrapper/flight-watch-map-wrapper.component';\r\nimport { PriceCheckerDialogComponent } from './fbo-prices/price-checker-dialog/price-checker-dialog.component';\r\nimport { AircraftLegendComponent } from './flight-watch/aircraft-legend/aircraft-legend.component';\r\nimport { FlightWatchFiltersComponent } from './flight-watch/flight-watch-filters/flight-watch-filters.component';\r\nimport { LobbyViewComponent } from './lobby-view/lobby-view.component';\r\nimport { AboutFbolinxComponent } from './about-fbolinx/about-fbolinx.component';\r\nimport { AgreementsAndDocumentsModalComponent } from '../shared/components/Agreements-and-documents-modal/Agreements-and-documents-modal.component';\r\nimport { ServiceOrdersListComponent } from './service-orders/service-orders-list/service-orders-list.component';\r\nimport { GroupAnalyticsIntraNetworkVisitsReportComponent } from './group-analytics/group-analytics-intra-network-visits-report/group-analytics-intra-network-visits-report.component';\r\nimport { ServiceOrdersHomeComponent } from './service-orders/service-orders-home/service-orders-home.component';\r\nimport { ServiceOrdersItemListComponent } from './service-orders/service-orders-item-list/service-orders-item-list.component';\r\nimport { ServiceOrdersDialogNewComponent } from './service-orders/service-orders-dialog-new/service-orders-dialog-new.component';\r\nimport { ServiceOrdersDialogOrderItemsComponent } from './service-orders/service-orders-dialog-order-items/service-orders-dialog-order-items.component';\r\nimport { FeeAndTaxBreakdownDialogWrapperComponent } from '../shared/components/price-breakdown/fee-and-tax-breakdown-dialog-wrapper/fee-and-tax-breakdown-dialog-wrapper.component';\r\nimport { ServicesAndFeesComponent } from './services-and-fees/services-and-fees.component';\r\nimport { ServicesAndFeesHomeComponent } from './services-and-fees-home/services-and-fees-home.component';\r\nimport { FavoriteIconComponent } from '../shared/components/favorite-icon/favorite-icon.component';\r\nimport { AicraftExpandedDetailComponent } from './flight-watch/flight-watch-aicraft-grid/flight-watch-aircraft-data-table/aicraft-expanded-detail/aicraft-expanded-detail.component';\r\nimport { AnalyticsActivityReportsComponent } from './analytics/analytics-activity-reports/analytics-activity-reports.component';\r\nimport { AnalyticsReportPopupComponent } from './analytics/analytics-report-popup/analytics-report-popup.component';\r\nimport { PresetDateFilterComponent } from '../shared/components/preset-date-filter/preset-date-filter.component';\r\nimport { ReportFiltersComponent } from './analytics/analytics-report-popup/report-filters/report-filters.component';\r\nimport { CustomerCaptureRateComponent } from './analytics/customer-capture-rate/customer-capture-rate.component';\r\nimport { ItemInputComponent } from './services-and-fees/item-input/item-input.component';\r\nimport { FuelreqsGridServicesComponent } from './fuelreqs/fuelreqs-grid-services/fuelreqs-grid-services.component';\r\nimport { FuelreqsNotesComponent } from './fuelreqs/fuelreqs-notes/fuelreqs-notes.component';\r\nimport { DecimalPrecisionPipe } from '../shared/pipes/decimal/decimal-precision.pipe';\r\nimport { JetNetInformationComponent } from '../shared/components/jetnet-information/jetnet-information.component';\r\nimport {CustomerActionStatusComponent} from '../shared/components/customer-action-status/customer-action-status.component';\r\nimport { CurrencyPresicionPipe } from '../shared/pipes/decimal/currencyPresicion.pipe';\r\nimport { GroupAnalyticsGenerateDialogGridComponent } from './group-analytics/group-analytics-generate-dialog-grid/group-analytics-generate-dialog-grid.component';\r\nimport { MultiselectAutocompleteComponent } from '../shared/components/multiselect-autocomplete/multiselect-autocomplete.component';\r\nimport { GroupFbosGridComponent } from './groups/group-fbos-grid/group-fbos-grid.component';\r\nimport { CustomerEmailGridComponent } from './group-analytics/group-analytics-email-pricing-dialog/customer-email-grid/customer-email-grid.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AuthtokenComponent,\r\n LoginComponent,\r\n ResetPasswordComponent,\r\n ContactsEditComponent,\r\n ContactsDialogNewContactComponent,\r\n ContactsDialogConfirmContactDeleteComponent,\r\n DialogConfirmAircraftDeleteComponent,\r\n ContactsGridComponent,\r\n ContactsHomeComponent,\r\n SystemcontactsGridComponent,\r\n CustomerAircraftsDialogNewAircraftComponent,\r\n CustomerAircraftSelectModelComponent,\r\n CustomerAircraftsEditComponent,\r\n CustomerAircraftsGridComponent,\r\n CustomerCompanyTypeDialogComponent,\r\n CustomersDialogNewCustomerComponent,\r\n CustomersEditComponent,\r\n CustomersGridComponent,\r\n CustomersHomeComponent,\r\n CustomersEditDialogComponent,\r\n DashboardFboComponent,\r\n DashboardFboUpdatedComponent,\r\n DashboardHomeComponent,\r\n EmailTemplatesDialogNewTemplateComponent,\r\n EmailTemplatesEditComponent,\r\n EmailTemplatesGridComponent,\r\n EmailTemplatesHomeComponent,\r\n FbosContactsComponent,\r\n FbosDialogNewFboComponent,\r\n FbosGridNewFboDialogComponent,\r\n FboPricesHomeComponent,\r\n FboPricesUpdateGeneratorComponent,\r\n FboPricesUpdateGeneratorGridComponent,\r\n FbosHomeComponent,\r\n FbosGridComponent,\r\n FbosEditComponent,\r\n FeeAndTaxSettingsDialogComponent,\r\n FuelreqsGridComponent,\r\n FuelreqsHomeComponent,\r\n GroupsDialogNewGroupComponent,\r\n GroupsMergeDialogComponent,\r\n GroupsEditComponent,\r\n GroupsGridComponent,\r\n GroupFbosGridComponent,\r\n GroupsHomeComponent,\r\n PricingTemplatesDialogNewTemplateComponent,\r\n PricingTemplatesDialogCopyTemplateComponent,\r\n PricingTemplatesDialogDeleteWarningComponent,\r\n FboPricesSelectDefaultTemplateComponent,\r\n PricingTemplatesEditComponent,\r\n PricingTemplatesGridComponent,\r\n PricingTemplatesHomeComponent,\r\n RampFeesCategoryComponent,\r\n RampFeesDialogNewFeeComponent,\r\n RampFeesImportInformationComponent,\r\n RampFeesHomeComponent,\r\n AnalyticsHomeComponent,\r\n UsersDialogNewUserComponent,\r\n UsersEditComponent,\r\n UsersGridComponent,\r\n UsersHomeComponent,\r\n AirportAutocompleteComponent,\r\n AnalyticsOrdersQuoteChartComponent,\r\n AnalyticsOrdersOverTimeChartComponent,\r\n AnalyticsVolumesNearbyAirportChartComponent,\r\n AnalyticsCustomerBreakdownChartComponent,\r\n AnalyticsCompaniesQuotesDealTableComponent,\r\n AnalyticsFuelVendorSourceChartComponent,\r\n AnalyticsMarketShareFboAirportChartComponent,\r\n AnalyticsAirportArrivalsDepaturesComponent,\r\n CopyConfirmationComponent,\r\n DeleteConfirmationComponent,\r\n ProceedConfirmationComponent,\r\n DistributeEmailsConfirmationComponent,\r\n CloseConfirmationComponent,\r\n SaveConfirmationComponent,\r\n DistributionWizardMainComponent,\r\n DistributionWizardReviewComponent,\r\n FboPricesPanelComponent,\r\n AccountProfileComponent,\r\n EmailContentEditComponent,\r\n EmailContentSelectionComponent,\r\n ForgotPasswordDialogComponent,\r\n ManageConfirmationComponent,\r\n NotificationComponent,\r\n PriceBreakdownComponent,\r\n PriceCheckerComponent,\r\n PricingExpiredNotificationComponent,\r\n PricingExpiredNotificationGroupComponent,\r\n StatisticsOrdersByLocationComponent,\r\n StatisticsTotalAircraftComponent,\r\n StatisticsTotalCustomersComponent,\r\n StatisticsTotalOrdersComponent,\r\n AircraftsGridComponent,\r\n FuelReqsExportModalComponent,\r\n ClickStopPropagationDirective,\r\n CustomerMatchDialogComponent,\r\n SystemcontactsNewContactModalComponent,\r\n TableColumnFilterComponent,\r\n TableGlobalSearchComponent,\r\n GroupAnalyticsHomeComponent,\r\n GroupAnalyticsGenerateDialogComponent,\r\n GroupAnalyticsEmailPricingDialogComponent,\r\n GroupAnalyticsCustomerStatisticsComponent,\r\n GroupAnalyticsFuelVendorSourcesComponent,\r\n GroupAnalyticsMarketShareComponent,\r\n GroupAnalyticsEmailTemplateDialogComponent,\r\n GroupCustomersHomeComponent,\r\n GroupCustomersGridComponent,\r\n FeeAndTaxBreakdownComponent,\r\n TableSettingsComponent,\r\n AircraftAssignModalComponent,\r\n FlightWatchComponent,\r\n FlightWatchMapComponent,\r\n FlightWatchAircraftInfoComponent,\r\n FlightWatchAicraftGridComponent,\r\n CsvExportModalComponent,\r\n AutocompleteSearchComponent,\r\n CustomerTagDialogComponent,\r\n CustomerInfoByGroupHistoryComponent,\r\n AssociationsDialogNewAssociationComponent,\r\n CustomerContactHistoryComponent,\r\n CustomerAircraftHistoryComponent,\r\n CutomerItpMraginHistoryComponent,\r\n CustomersAnalyticsComponent,\r\n CustomerHistoryComponent,\r\n CustomerHistoryDetailsComponent,\r\n FboGeofencingHomeComponent,\r\n FboGeofencingGridComponent,\r\n FboGeofencingMapComponent,\r\n FboGeofencingDialogNewClusterComponent,\r\n FboGeofencingDialogNewAirportComponent,\r\n AntennaStatusHomeComponent,\r\n AntennaStatusGridComponent,\r\n FbosMissedOrdersGridComponent,\r\n FbosMissedQuotesGridComponent,\r\n AircraftPopupContainerComponent,\r\n FlightWatchAircraftDataTableComponent,\r\n AicraftExpandedDetailComponent,\r\n MissedOrdersGridComponent,\r\n FlightWatchMapWrapperComponent,\r\n PriceCheckerDialogComponent,\r\n AircraftLegendComponent,\r\n FlightWatchFiltersComponent,\r\n LobbyViewComponent,\r\n AboutFbolinxComponent,\r\n AgreementsAndDocumentsModalComponent,\r\n GroupAnalyticsIntraNetworkVisitsReportComponent,\r\n ServiceOrdersListComponent,\r\n ServiceOrdersHomeComponent,\r\n ServiceOrdersItemListComponent,\r\n ServiceOrdersDialogNewComponent,\r\n ServiceOrdersDialogOrderItemsComponent,\r\n FeeAndTaxBreakdownDialogWrapperComponent,\r\n FavoriteIconComponent,\r\n AnalyticsActivityReportsComponent,\r\n AnalyticsReportPopupComponent,\r\n PresetDateFilterComponent,\r\n ReportFiltersComponent,\r\n CustomerCaptureRateComponent,\r\n ServicesAndFeesComponent,\r\n FavoriteIconComponent,\r\n ServicesAndFeesHomeComponent,\r\n RampFeesCategoryComponent,\r\n ItemInputComponent,\r\n FuelreqsGridServicesComponent,\r\n FuelreqsNotesComponent,\r\n JetNetInformationComponent,\r\n CustomerActionStatusComponent,\r\n DecimalPrecisionPipe,\r\n CurrencyPresicionPipe,\r\n GroupAnalyticsGenerateDialogGridComponent,\r\n MultiselectAutocompleteComponent,\r\n CustomerEmailGridComponent\r\n ],\r\n exports: [ClickStopPropagationDirective, FboPricesPanelComponent],\r\n imports: [\r\n CommonModule,\r\n BrowserAnimationsModule,\r\n FormsModule,\r\n DragDropModule,\r\n A11yModule,\r\n ClipboardModule,\r\n PortalModule,\r\n ScrollingModule,\r\n CdkStepperModule,\r\n CdkTableModule,\r\n CdkTreeModule,\r\n ReactiveFormsModule,\r\n NiComponentsModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\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 MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n NgxChartsModule,\r\n TextMaskModule,\r\n RichTextEditorAllModule,\r\n AppPipesModule,\r\n NgbPopoverModule,\r\n NgxUiLoaderModule,\r\n GridModule,\r\n RouterModule,\r\n PopoverModule,\r\n ResizableModule,\r\n MultiSelectModule,\r\n ListboxModule,\r\n DropdownModule,\r\n Ej2MultiSelectModule,\r\n NgxMatDatetimePickerModule,\r\n NgxMatTimepickerModule,\r\n NgxMatNativeDateModule\r\n ],\r\n providers: [\r\n ColumnMenuService,\r\n PageService,\r\n SortService,\r\n FilterService,\r\n GroupService,\r\n ToolbarService,\r\n DetailRowService,\r\n DatePipe,\r\n CurrencyPipe,\r\n DecimalPrecisionPipe,\r\n CurrencyPresicionPipe\r\n ],\r\n})\r\nexport class PagesModule { }\r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\n// Services\r\nimport { PricetiersService } from '../../../services/pricetiers.service';\r\n\r\nexport interface CopyPricingTemplateDialogData {\r\n currentPricingTemplateId: number;\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'copy-pricing-templates-dialog-new-template',\r\n styleUrls: ['./pricing-template-dialog-copy-template.component.scss'],\r\n templateUrl: './pricing-template-dialog-copy-template.component.html',\r\n})\r\nexport class PricingTemplatesDialogCopyTemplateComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public closeConfirmationDialog: MatDialog,\r\n public priceTiersService: PricetiersService,\r\n public router: Router,\r\n @Inject(MAT_DIALOG_DATA) public data: CopyPricingTemplateDialogData\r\n ) {\r\n // Prevent modal close on outside click\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n ConfirmCopy() {\r\n this.dialogRef.close(this.data);\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n}\r\n","

Copy Template Confirmation

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n file_copy\r\n Copy Template\r\n \r\n  \r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { PricingTemplate } from '../../../models';\r\nexport interface PricingTemplatesDialogDeleteWarningComponentData {\r\n action: string;\r\n data: PricingTemplate[]\r\n}\r\n\r\n@Component({\r\n selector: 'app-pricing-templates-delete-warning-template',\r\n styleUrls: ['./pricing-template-dialog-delete-warning.component.scss'],\r\n templateUrl: './pricing-template-dialog-delete-warning.component.html',\r\n})\r\nexport class PricingTemplatesDialogDeleteWarningComponent implements OnInit {\r\n public selectedTemplate: any;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data,\r\n public closeConfirmationDialog: MatDialog\r\n ) { dialogRef.disableClose = true; }\r\n\r\n ngOnInit() {}\r\n\r\n onSelect() {\r\n if (this.selectedTemplate) {\r\n this.dialogRef.close(this.selectedTemplate);\r\n }\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n}\r\n","

Warning Message

\r\n
\r\n
\r\n You are {{data.action}} your current default margin template. Please select\r\n another margin template below. Your default template will be used for\r\n newly added customers or if you delete a margin template with customers\r\n assigned to it.\r\n
\r\n
\r\n \r\n \r\n \r\n {{ pricingTemplate.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","import { Component, Inject, OnInit, ViewChild } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { ImageSettingsModel, RichTextEditorComponent } from '@syncfusion/ej2-angular-richtexteditor';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { EmailcontentService } from '../../../services/emailcontent.service';\r\n// Services\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { PricetiersService } from '../../../services/pricetiers.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { CloseConfirmationComponent } from '../../../shared/components/close-confirmation/close-confirmation.component';\r\nimport { EmailTemplatesDialogNewTemplateComponent } from '../../../shared/components/email-templates-dialog-new-template/email-templates-dialog-new-template.component';\r\nimport { ProceedConfirmationComponent } from '../../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\nimport { PricingTemplateCalcService } from '../pricingTemplateCalc.service';\r\nimport { DecimalPrecisionPipe } from 'src/app/shared/pipes/decimal/decimal-precision.pipe';\r\nimport { StringHelperService } from 'src/app/helpers/strings/stringHelper.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport interface NewPricingTemplateMargin {\r\n allin: FormControl;\r\n amount: FormControl;\r\n itp: FormControl;\r\n max: FormControl;\r\n min: FormControl;\r\n}\r\n\r\n@Component({\r\n selector: 'app-pricing-templates-dialog-new-template',\r\n styleUrls: ['./pricing-templates-dialog-new-template.component.scss'],\r\n templateUrl: './pricing-templates-dialog-new-template.component.html',\r\n})\r\nexport class PricingTemplatesDialogNewTemplateComponent implements OnInit {\r\n @ViewChild('typeEmail') rteEmail: RichTextEditorComponent;\r\n @ViewChild('typeNotes') rteObj: RichTextEditorComponent;\r\n @ViewChild('stepper') stepper: MatStepper;\r\n\r\n form: FormGroup;\r\n\r\n jetACost: number;\r\n jetARetail: number;\r\n currentPrice: any[];\r\n title: string;\r\n isSaving: boolean;\r\n marginTypeDataSource: Array = [\r\n {\r\n text: 'Cost +',\r\n value: 0,\r\n },\r\n {\r\n text: 'Retail -',\r\n value: 1,\r\n },\r\n ];\r\n\r\n discountTypeDataSource: Array = [\r\n { text: 'Flat per Gallon', value: 0 },\r\n { text: 'Percentage', value: 1 },\r\n ];\r\n\r\n emailTemplatesDataSource: Array;\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64' }\r\n inputStepDefaultValue: string = this.stringHelperService.getNumberInputStepDefaultValue();\r\n valueChangeSubscription: Subscription;\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private dialogRef: MatDialogRef,\r\n private closeConfirmationDialog: MatDialog,\r\n private formBuilder: FormBuilder,\r\n private priceTiersService: PricetiersService,\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private fboPricesService: FbopricesService,\r\n private sharedService: SharedService,\r\n private emailContentService: EmailcontentService,\r\n public newTemplateDialog: MatDialog,\r\n private marginLessThanOneDialog: MatDialog,\r\n private pricingTemplateCalcService: PricingTemplateCalcService,\r\n private decimalPrecisionPipe: DecimalPrecisionPipe,\r\n private stringHelperService: StringHelperService\r\n ) {\r\n this.loadCurrentPrice();\r\n this.title = 'New Margin Template';\r\n\r\n // Prevent modal close on outside click\r\n this.dialogRef.disableClose = true;\r\n this.dialogRef.backdropClick().subscribe(() => {\r\n const marginName = this.form.value.firstStep.templateName;\r\n if (!marginName) {\r\n this.dialogRef.close();\r\n } else {\r\n const closeDialogRef = this.closeConfirmationDialog.open(\r\n CloseConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n cancel: 'Cancel',\r\n customText:\r\n 'You have unsaved changes. Are you sure?',\r\n customTitle: 'Discard Changes?',\r\n ok: 'Discard',\r\n },\r\n }\r\n );\r\n closeDialogRef.afterClosed().subscribe((result) => {\r\n if (result === true) {\r\n this.dialogRef.close();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n get customerMarginsFormArray() {\r\n const secondStep = this.form.controls.secondStep as FormGroup;\r\n return secondStep.controls.customerMargins as FormArray;\r\n }\r\n\r\n get marginType() {\r\n return this.form.value.secondStep.marginType;\r\n }\r\n\r\n get discountType() {\r\n\r\n return this.form.value.secondStep.discountType;\r\n }\r\n\r\n\r\n ngOnInit() {\r\n this.initForm();\r\n this.loadEmailContentTemplate();\r\n }\r\n ngOnDestroy() {\r\n this.valueChangeSubscription?.unsubscribe();\r\n }\r\n initForm() {\r\n this.form = this.formBuilder.group({\r\n firstStep: this.formBuilder.group({\r\n templateDefault: [false],\r\n templateName: ['', Validators.required],\r\n\r\n }),\r\n secondStep: this.formBuilder.group({\r\n customerMargins: this.formBuilder.array([\r\n this.formBuilder.group({\r\n allin: new FormControl(0),\r\n amount: new FormControl(this.decimalPrecisionPipe.transform(Number(0),true)),\r\n itp: new FormControl(0),\r\n max: new FormControl({value: 99999, disabled: true}, Validators.required),\r\n min: new FormControl(1),\r\n },\r\n {\r\n updateOn: 'blur',\r\n }\r\n ),\r\n ]),\r\n marginType: [1, Validators.required],\r\n discountType :[0 , Validators.required]\r\n }),\r\n thirdStep: this.formBuilder.group({\r\n emailContentId: [''],\r\n notes: [''],\r\n }),\r\n });\r\n\r\n const secondStep = this.form.controls.secondStep as FormGroup;\r\n this.valueChangeSubscription = secondStep.valueChanges.subscribe(() => {\r\n const updatedMargins = this.updateMargins(\r\n this.customerMarginsFormArray.getRawValue(),\r\n this.marginType ,\r\n this.discountType\r\n );\r\n this.customerMarginsFormArray.setValue(updatedMargins, {\r\n emitEvent: false,\r\n });\r\n });\r\n }\r\n\r\n marginTypeChange() {\r\n const secondStep = this.form.controls.secondStep as FormGroup;\r\n secondStep.setControl(\r\n 'customerMargins',\r\n this.formBuilder.array([\r\n this.formBuilder.group({\r\n allin: new FormControl(0),\r\n amount: new FormControl(this.decimalPrecisionPipe.transform(Number(0))),\r\n itp: new FormControl(0),\r\n max: new FormControl({value: 99999, disabled: true}, Validators.required),\r\n min: new FormControl(1),\r\n },\r\n {\r\n updateOn: 'blur'\r\n }\r\n ),\r\n ])\r\n );\r\n }\r\n updateCustomerMarginVolumeValues(index: number){\r\n this.pricingTemplateCalcService.adjustCustomerMarginPreviousValues(index,this.customerMarginsFormArray);\r\n this.pricingTemplateCalcService.adjustCustomerMarginNextValues(index,this.customerMarginsFormArray);\r\n }\r\n\r\n addCustomerMargin() {\r\n const customerMargin: NewPricingTemplateMargin = {\r\n allin: new FormControl(0),\r\n amount: new FormControl(this.decimalPrecisionPipe.transform(Number(0))),\r\n itp: new FormControl(0),\r\n max: new FormControl({value: 99999, disabled: true}, Validators.required),\r\n min: new FormControl(1),\r\n };\r\n if (this.customerMarginsFormArray.length > 0) {\r\n const lastIndex = this.customerMarginsFormArray.length - 1;\r\n\r\n customerMargin.min.setValue(\r\n Math.abs(\r\n this.customerMarginsFormArray.at(lastIndex).value.min\r\n ) + 250);\r\n this.customerMarginsFormArray.at(lastIndex).patchValue({\r\n max: Math.abs(customerMargin.min.value) - 1,\r\n });\r\n }\r\n\r\n this.customerMarginsFormArray.push(\r\n this.formBuilder.group(customerMargin, { updateOn: 'blur' })\r\n );\r\n }\r\n\r\n deleteCustomerMargin(index) {\r\n this.pricingTemplateCalcService.adjustCustomerMarginValuesOnDelete(index,this.customerMarginsFormArray);\r\n }\r\n\r\n addTemplateClicked() {\r\n var isMarginLessThanZero = false;\r\n if (this.form.value.secondStep.marginType == 0) {\r\n this.customerMarginsFormArray.value.every(\r\n (customerMargin: any) => {\r\n if (customerMargin.amount <= 0) {\r\n isMarginLessThanZero = true;\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n this.customerMarginsFormArray.value.every(\r\n (customerMargin: any) => {\r\n if (customerMargin.amount <= 0) {\r\n isMarginLessThanZero = true;\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n if (!isMarginLessThanZero) {\r\n this.completeTemplateAdd();\r\n }\r\n else {\r\n const dialogRef = this.marginLessThanOneDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Yes',\r\n title: 'This ITP template contains a margin that is less than or equal to zero. Please confirm you want to proceed'\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.completeTemplateAdd();\r\n });\r\n }\r\n }\r\n\r\n loadCurrentPrice() {\r\n this.fboPricesService\r\n .getFbopricesByFboIdCurrent(this.data.fboId)\r\n .subscribe((data: any) => {\r\n this.jetACost = data.find(\r\n (item) => item.product === 'JetA Cost'\r\n ).price;\r\n this.jetARetail = data.find(\r\n (item) => item.product === 'JetA Retail'\r\n ).price;\r\n });\r\n }\r\n\r\n resetWizard() {\r\n this.initForm();\r\n this.stepper.reset();\r\n }\r\n\r\n public onEmailConentTemplateChanged(event): void {\r\n if (this.form.value.thirdStep.emailContentId > -1)\r\n return;\r\n\r\n const dialogRef = this.newTemplateDialog.open(\r\n EmailTemplatesDialogNewTemplateComponent,\r\n {\r\n data: {\r\n fboId: this.sharedService.currentUser.fboId,\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.emailContentService\r\n .add(result)\r\n .subscribe((response: any) => {\r\n this.form.get(['thirdStep', 'emailContentId']).setValue(response.oid);\r\n this.loadEmailContentTemplate();\r\n });\r\n });\r\n }\r\n\r\n private completeTemplateAdd() {\r\n this.isSaving = true;\r\n\r\n const templatePayload = {\r\n default: this.form.value.firstStep.templateDefault,\r\n emailContentId: this.form.value.thirdStep.emailContentId,\r\n fboId: this.data.fboId,\r\n marginType: this.form.value.secondStep.marginType,\r\n discountType: this.discountType,\r\n name: this.form.value.firstStep.templateName,\r\n notes: this.form.value.thirdStep.notes,\r\n };\r\n\r\n\r\n this.pricingTemplatesService\r\n .add(templatePayload)\r\n .subscribe((savedTemplate: any) => {\r\n const customerMargins = [];\r\n this.customerMarginsFormArray.value.forEach(\r\n (customerMargin: any) => {\r\n customerMargins.push({\r\n ...customerMargin,\r\n templateId: savedTemplate.oid,\r\n });\r\n }\r\n );\r\n\r\n this.priceTiersService\r\n .updateFromCustomerMarginsViewModel(customerMargins)\r\n .subscribe(() => {\r\n this.isSaving = false;\r\n this.fboPricesService.handlePriceChangeCleanUp(this.sharedService.currentUser.fboId).subscribe(\r\n (response:\r\n any) => {\r\n this.dialogRef.close(savedTemplate);\r\n });\r\n\r\n });\r\n });\r\n }\r\n\r\n private loadEmailContentTemplate(): void {\r\n this.emailContentService\r\n .getForFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n this.emailTemplatesDataSource = response;\r\n this.emailTemplatesDataSource.push({\r\n oid: -1,\r\n name: '--Add New Email Template--',\r\n subject: ''\r\n });\r\n });\r\n }\r\n\r\n private updateMargins(oldMargins, marginType , discountType) {\r\n const margins = [...oldMargins];\r\n for (let i = 0; i < margins?.length; i++) {\r\n if (marginType == 0) {\r\n if (margins[i].min !== null && margins[i].amount !== null) {\r\n if(discountType == 0)\r\n {\r\n margins[i].allin = Number(margins[i].amount);\r\n }\r\n else\r\n {\r\n margins[i].allin =\r\n this.jetACost * Number(margins[i].amount)/100;\r\n }\r\n\r\n margins[i].itp = this.jetACost;\r\n if (margins[i].allin !== null) {\r\n margins[i].itp = margins[i].allin ;\r\n }\r\n\r\n }\r\n } else {\r\n if (margins[i].amount !== null && margins[i].min !== null) {\r\n\r\n if(discountType == 0)\r\n {\r\n margins[i].allin =\r\n this.jetARetail - Number(margins[i].amount);\r\n }\r\n else\r\n {\r\n margins[i].allin =\r\n this.jetARetail * (1 - (Number(margins[i].amount) /100));\r\n }\r\n\r\n\r\n if (margins[i].allin !== null) {\r\n\r\n margins[i].itp = margins[i].allin - this.jetACost ;\r\n }\r\n else\r\n {\r\n margins[i].itp = this.jetARetail;\r\n }\r\n }\r\n }\r\n if (margins[i].amount !== null || margins[i].amount !== '') {\r\n margins[i].amount = this.decimalPrecisionPipe.transform(margins[i].amount);\r\n }\r\n }\r\n return margins;\r\n }\r\n}\r\n","

{{ title }}

\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n Margin Name\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n Default\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n Edit Tiers\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ marginType.text }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n {{ discountType.text }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
Volume Tiers
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Min. (gal)\r\n \r\n Max. (gal)\r\n \r\n Discount\r\n \r\n Total\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n $\r\n\r\n %\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{\r\n jetACost + customerMargin.value.amount / 1\r\n | currencyPresicion\r\n }}\r\n
\r\n
\r\n {{\r\n jetACost + (jetACost * customerMargin.value.amount / 100)\r\n | currencyPresicion\r\n }}\r\n
\r\n
\r\n {{\r\n jetARetail - customerMargin.value.amount\r\n | currencyPresicion\r\n }}\r\n
\r\n
\r\n {{\r\n jetARetail - (jetARetail * customerMargin.value.amount / 100)\r\n | currencyPresicion\r\n }}\r\n
\r\n
\r\n
1\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Notes\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ emailContentTemplate.name }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n Fuel Notes\r\n \r\n     To show to all FuelerLinx customers\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Save Template\r\n \r\n
\r\n
\r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n OnInit,\r\n OnDestroy,\r\n Output,\r\n ViewChild} from '@angular/core';\r\nimport { FormArray, FormBuilder, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { RichTextEditorComponent } from '@syncfusion/ej2-angular-richtexteditor';\r\nimport { differenceBy, forOwn } from 'lodash';\r\nimport { combineLatest, Subscription } from 'rxjs';\r\nimport {\r\n MatDialog,\r\n} from '@angular/material/dialog';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { CustomermarginsService } from '../../../services/customermargins.service';\r\nimport { EmailcontentService } from '../../../services/emailcontent.service';\r\nimport { FbofeeandtaxomitsbypricingtemplateService } from '../../../services/fbofeeandtaxomitsbypricingtemplate.service';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { PricetiersService } from '../../../services/pricetiers.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { CustomcustomertypesService } from '../../../services/customcustomertypes.service';\r\n// Components\r\nimport { PriceBreakdownComponent } from '../../../shared/components/price-breakdown/price-breakdown.component';\r\nimport { ProceedConfirmationComponent } from '../../../shared/components/proceed-confirmation/proceed-confirmation.component';\r\nimport { PricingTemplateCalcService } from '../pricingTemplateCalc.service';\r\nimport { PricingTemplatesDialogDeleteWarningComponent } from '../pricing-template-dialog-delete-warning-template/pricing-template-dialog-delete-warning.component';\r\nimport { ToolbarSettingsModel } from '@syncfusion/ej2-angular-dropdowns';\r\nimport { DecimalPrecisionPipe } from 'src/app/shared/pipes/decimal/decimal-precision.pipe';\r\nimport { StringHelperService } from 'src/app/helpers/strings/stringHelper.service';\r\nexport interface DefaultTemplateUpdate {\r\n currenttemplate: number;\r\n newtemplate: number;\r\n fboid: number;\r\n isDeleting: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-pricing-templates-edit',\r\n styleUrls: ['./pricing-templates-edit.component.scss'],\r\n templateUrl: './pricing-templates-edit.component.html',\r\n})\r\nexport class PricingTemplatesEditComponent implements OnInit, OnDestroy {\r\n @ViewChild('priceBreakdownPreview')\r\n private priceBreakdownPreview: PriceBreakdownComponent;\r\n @ViewChild('feeAndTaxGeneralBreakdown')\r\n private feeAndTaxGeneralBreakdown: PriceBreakdownComponent;\r\n @ViewChild('typeRTE') rteObj: RichTextEditorComponent;\r\n @ViewChild('fileUpload') fileUploadName;\r\n\r\n // Input/Output Bindings\r\n @Output() savePricingTemplateClicked = new EventEmitter();\r\n\r\n pricingTemplate: any;\r\n id :any;\r\n pricingTemplateForm: FormGroup;\r\n pageTitle = 'Edit Margin Template';\r\n marginTypeDataSource: Array = [\r\n { text: 'Cost +', value: 0 },\r\n { text: 'Retail -', value: 1 },\r\n ];\r\n\r\n\r\n discountTypeDataSource: Array = [\r\n { text: 'Flat per Gallon', value: 0 },\r\n { text: 'Percentage', value: 1 },\r\n ];\r\n\r\n emailTemplatesDataSource: Array;\r\n canSave: boolean;\r\n jetACost: number;\r\n jetARetail: number;\r\n isSaving = false;\r\n hasSaved = false;\r\n isSaveQueued = false;\r\n feesAndTaxes: Array;\r\n isDefaultChanged = false;\r\n\r\n theFile: any;\r\n isUploadingFile: boolean;\r\n fileName: any = \"\";\r\n public tools: ToolbarSettingsModel = { items: ['Bold', 'Italic', 'Underline', '|', 'Formats', 'Alignments', 'OrderedList', 'UnorderedList', '|', 'CreateLink', '|', 'SourceCode', 'Undo', 'Redo'] };\r\n\r\n public updateModel: DefaultTemplateUpdate = {\r\n currenttemplate: 0,\r\n fboid: 0,\r\n newtemplate: 0,\r\n isDeleting: false\r\n };\r\n pricingTemplates: Array;\r\n inputStepDefaultValue: string = this.stringHelperService.getNumberInputStepDefaultValue();\r\n combineLatestSubscription: Subscription[] = [];\r\n valueChangesSubscription: Subscription[] = [];\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private formBuilder: FormBuilder,\r\n private customerMarginsService: CustomermarginsService,\r\n private priceTiersService: PricetiersService,\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private fboPricesService: FbopricesService,\r\n private fboFeesAndTaxesService: FbofeesandtaxesService,\r\n private fboFeeAndTaxOmitsbyPricingTemplateService: FbofeeandtaxomitsbypricingtemplateService,\r\n private sharedService: SharedService,\r\n private emailContentService: EmailcontentService,\r\n private marginLessThanOneDialog: MatDialog,\r\n private pricingTemplateCalcService: PricingTemplateCalcService,\r\n public deleteTemplateWarningDialog: MatDialog,\r\n public customCustomerService: CustomcustomertypesService,\r\n private decimalPrecisionPipe: DecimalPrecisionPipe,\r\n private stringHelperService: StringHelperService\r\n ) {\r\n\r\n\r\n }\r\n\r\n get customerMarginsFormArray() {\r\n return this.pricingTemplateForm.controls.customerMargins as FormArray;\r\n }\r\n\r\n get isMember() {\r\n return this.sharedService.currentUser.role === 4;\r\n }\r\n\r\n ngOnDestroy() {\r\n this.valueChangesSubscription.forEach((subscription) => {\r\n subscription?.unsubscribe();\r\n });\r\n this.combineLatestSubscription.forEach((subscription) => { subscription?.unsubscribe(); });\r\n if (!this.hasSaved)\r\n return;\r\n this.fboPricesService.handlePriceChangeCleanUp(this.sharedService.currentUser.fboId).subscribe((response: any) => {\r\n //Do nothing\r\n });\r\n }\r\n\r\n onActionBegin (args: any): void {\r\n if (args.type === 'drop' || args.type === 'dragstart') {\r\n args.cancel = true;\r\n }\r\n}\r\n\r\n async ngOnInit() {\r\n // Check for passed in id\r\n this.id = this.route.snapshot.paramMap.get('id');\r\n this.pricingTemplate = await this.pricingTemplatesService\r\n .get({ oid: this.id })\r\n .toPromise();\r\n\r\n this.pricingTemplates = await this.pricingTemplatesService.getByFbo(this.sharedService.currentUser.fboId, this.sharedService.currentUser.groupId).toPromise();\r\n\r\n let combineLatestSubscription = combineLatest([\r\n this.customerMarginsService.getCustomerMarginsByPricingTemplateId(\r\n this.id\r\n ),\r\n this.fboPricesService.getFbopricesByFboIdCurrent(\r\n this.sharedService.currentUser.fboId\r\n ),\r\n this.pricingTemplatesService.getFileAttachmentName(\r\n this.id\r\n ),\r\n ]).subscribe(([customerMarginsData, fboPricesData, fileAttachmentName]) => {\r\n const jetACostRecords = (fboPricesData as any).filter(\r\n (item) => item.product === 'JetA Cost'\r\n );\r\n const jetARetailRecords = (fboPricesData as any).filter(\r\n (item) => item.product === 'JetA Retail'\r\n );\r\n if (jetACostRecords && jetACostRecords.length > 0) {\r\n this.jetACost = jetACostRecords[0].price;\r\n }\r\n if (jetARetailRecords && jetARetailRecords.length > 0) {\r\n console.log(jetACostRecords);\r\n this.jetARetail = jetARetailRecords[0].price;\r\n\r\n }\r\n\r\n this.pricingTemplate.customerMargins = this.updateMargins(\r\n customerMarginsData,\r\n this.pricingTemplate.marginType ,\r\n this.pricingTemplate.discountType\r\n\r\n );\r\n\r\n this.fileName = fileAttachmentName;\r\n\r\n let customerMargins: FormArray = this.formBuilder.array([]);\r\n if (this.pricingTemplate.customerMargins) {\r\n customerMargins = this.formBuilder.array(\r\n this.pricingTemplate.customerMargins.map(\r\n (customerMargin) => {\r\n if (\r\n customerMargin.amount !== undefined &&\r\n customerMargin.amount !== null\r\n ) {\r\n customerMargin.amount = this.decimalPrecisionPipe.transform(Number(\r\n customerMargin.amount\r\n ));\r\n\r\n\r\n }\r\n const group = {\r\n itp: undefined,\r\n };\r\n forOwn(customerMargin, (value, key) => {\r\n group[key] = [value];\r\n });\r\n return this.formBuilder.group(group, {\r\n updateOn: 'blur',\r\n });\r\n }\r\n )\r\n );\r\n }\r\n\r\n this.pricingTemplateForm = this.formBuilder.group({\r\n customerMargins,\r\n default: [this.pricingTemplate.default],\r\n emailContentId: [this.pricingTemplate.emailContentId],\r\n marginType: [this.pricingTemplate.marginType],\r\n discountType:[this.pricingTemplate.discountType],\r\n name: [this.pricingTemplate.name],\r\n notes: [this.pricingTemplate.notes],\r\n });\r\n\r\n let pricingTemplateValueChangeSubscription = this.pricingTemplateForm.valueChanges.subscribe(() => {\r\n this.canSave = true;\r\n if (!this.isDefaultChanged)\r\n this.savePricingTemplate();\r\n });\r\n this.valueChangesSubscription.push(pricingTemplateValueChangeSubscription);\r\n // Margin type change event\r\n let pricingMarginTypeSubscription = this.pricingTemplateForm.controls.marginType.valueChanges.subscribe(\r\n (type) => {\r\n const updatedMargins = this.decimalPrecisionPipe.transform(this.updateMargins(\r\n this.pricingTemplateForm.value.customerMargins,\r\n type ,\r\n this.pricingTemplateForm.value.discountType,\r\n ));\r\n\r\n this.pricingTemplateForm.controls.customerMargins.setValue(\r\n updatedMargins,\r\n {\r\n emitEvent: false,\r\n }\r\n );\r\n this.savePricingTemplate();\r\n }\r\n );\r\n this.valueChangesSubscription.push(pricingMarginTypeSubscription);\r\n let pricingCustomerMarginSubscription = this.pricingTemplateForm.controls.customerMargins.valueChanges.subscribe(\r\n (margins) => {\r\n const updatedMargins = this.decimalPrecisionPipe.transform(this.updateMargins(\r\n margins,\r\n this.pricingTemplateForm.value.marginType ,\r\n this.pricingTemplateForm.value.discountType\r\n ));\r\n this.pricingTemplateForm.controls.customerMargins.setValue(\r\n updatedMargins,\r\n {\r\n emitEvent: false,\r\n }\r\n );\r\n this.savePricingTemplate();\r\n }\r\n );\r\n\r\n this.valueChangesSubscription.push(pricingCustomerMarginSubscription);\r\n //When Discount Type Change event\r\n let pricingDiscountVAlueChangeSubscription = this.pricingTemplateForm.controls.discountType.valueChanges.subscribe(\r\n (type) => {\r\n const updatedMargins = this.updateMargins(\r\n this.pricingTemplateForm.value.customerMargins,\r\n this.pricingTemplateForm.value.marginType,\r\n type ,\r\n\r\n );\r\n this.pricingTemplateForm.controls.customerMargins.setValue(\r\n updatedMargins,\r\n {\r\n emitEvent: false,\r\n }\r\n );\r\n this.savePricingTemplate();\r\n }\r\n );\r\n this.valueChangesSubscription.push(pricingDiscountVAlueChangeSubscription);\r\n // Default toggle event\r\n let pricingValueChangeSubscription = this.pricingTemplateForm.controls.default.valueChanges.subscribe(\r\n (type) => {\r\n if (!type) {\r\n this.isDefaultChanged = true;\r\n const dialogRef = this.deleteTemplateWarningDialog.open(\r\n PricingTemplatesDialogDeleteWarningComponent,\r\n {\r\n autoFocus: false,\r\n data: { data: this.pricingTemplates, action: \"removing\" },\r\n width: '600px',\r\n disableClose:false\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((response) => {\r\n if (response !== 'cancel') {\r\n this.updateModel.currenttemplate = this.pricingTemplate.oid;\r\n this.updateModel.fboid = this.pricingTemplate.fboid;\r\n this.updateModel.newtemplate = response;\r\n this.updateModel.isDeleting = false;\r\n\r\n this.customCustomerService\r\n .updateDefaultTemplate(this.updateModel)\r\n .subscribe((result) => {\r\n if (result) {\r\n\r\n if (this.updateModel.newtemplate == this.updateModel.currenttemplate) {\r\n this.isSaving = false;\r\n this.hasSaved = true;\r\n this.pricingTemplateForm.controls.default.setValue(true);\r\n }\r\n else {\r\n this.canSave = true;\r\n this.savePricingTemplate();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n this.pricingTemplateForm.controls.default.setValue(true);\r\n }\r\n });\r\n }\r\n\r\n }\r\n );\r\n this.valueChangesSubscription.push(pricingValueChangeSubscription);\r\n });\r\n this.combineLatestSubscription.push(combineLatestSubscription);\r\n this.loadPricingTemplateFeesAndTaxes();\r\n this.loadEmailContentTemplate();\r\n }\r\n\r\n savePricingTemplate(): void {\r\n const self = this;\r\n if (this.isSaving) {\r\n // Save already in queue - no need to double-up the queue\r\n if (this.isSaveQueued) {\r\n return;\r\n }\r\n this.isSaveQueued = true;\r\n setTimeout(() => {\r\n self.savePricingTemplate();\r\n }, 250);\r\n return;\r\n }\r\n\r\n this.isSaveQueued = false;\r\n this.isSaving = true;\r\n\r\n var isMarginLessThanZero = false;\r\n isMarginLessThanZero = this.checkMarginLessThanZero();\r\n if (isMarginLessThanZero) {\r\n const dialogRef = this.marginLessThanOneDialog.open(\r\n ProceedConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: {\r\n buttonText: 'Yes',\r\n title: 'This ITP template contains a margin that is less than or equal to zero. Please confirm you want to proceed'\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n this.isSaving = false;\r\n return;\r\n }\r\n this.continueSavingTemplate();\r\n });\r\n }\r\n else {\r\n this.continueSavingTemplate();\r\n }\r\n }\r\n\r\n continueSavingTemplate() {\r\n this.hasSaved = false;\r\n const removedCustomerMargins = differenceBy(\r\n this.pricingTemplate.customerMargins,\r\n this.pricingTemplateForm.value.customerMargins,\r\n 'oid'\r\n );\r\n\r\n let combineLatestSubscription = combineLatest([\r\n this.customerMarginsService.bulkRemove(removedCustomerMargins),\r\n this.priceTiersService.updateFromCustomerMarginsViewModel(\r\n this.pricingTemplateForm.value.customerMargins\r\n ),\r\n this.pricingTemplatesService.update({\r\n ...this.pricingTemplate,\r\n ...this.pricingTemplateForm.value,\r\n }),\r\n ]).subscribe(\r\n ([\r\n bulkRemoveResponse,\r\n customerMarginsUpdateResponse,\r\n priceTemplatesResponse,\r\n ]) => {\r\n // this.router.navigate(['/default-layout/pricing-templates/']).then(() => {});\r\n this.pricingTemplate.customerMargins =\r\n customerMarginsUpdateResponse;\r\n for (\r\n let i = 0;\r\n i < this.pricingTemplateForm.value.customerMargins.length;\r\n i++\r\n ) {\r\n this.pricingTemplateForm.value.customerMargins[i].oid =\r\n this.pricingTemplate.customerMargins[i].oid;\r\n }\r\n this.isSaving = false;\r\n this.hasSaved = true;\r\n this.priceBreakdownPreview.performRecalculation();\r\n this.feeAndTaxGeneralBreakdown.performRecalculation();\r\n\r\n this.sharedService.NotifyPricingTemplateComponent(\r\n 'updateComponent'\r\n );\r\n }\r\n );\r\n this.combineLatestSubscription.push(combineLatestSubscription);\r\n }\r\n\r\n onFileChange(event) {\r\n this.theFile = null;\r\n if (event.target.files && event.target.files.length > 0) {\r\n // Set theFile property\r\n this.theFile = event.target.files[0];\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n if (this.theFile != null) {\r\n this.isUploadingFile = true;\r\n this.readAndUploadFile(this.theFile);\r\n }\r\n }\r\n\r\n deleteFile(): void {\r\n this.pricingTemplatesService\r\n .deleteFileAttachment(this.id)\r\n .subscribe((data: any) => {\r\n this.fileName = '';\r\n });\r\n }\r\n\r\n downloadFile(): void {\r\n this.pricingTemplatesService.downloadFileAttachment(this.id).subscribe((data: any) => {\r\n const source = data;\r\n const link = document.createElement(\"a\");\r\n link.href = source;\r\n link.download = this.fileName;\r\n link.click();\r\n });\r\n }\r\n\r\n checkMarginLessThanZero(): boolean {\r\n var isMarginLessThanZero = false;\r\n if (this.pricingTemplateForm.value\r\n .marginType == 0) {\r\n this.customerMarginsFormArray.value.every(\r\n (customerMargin: any) => {\r\n if (customerMargin.amount <= 0) {\r\n isMarginLessThanZero = true;\r\n return false;\r\n }\r\n });\r\n }\r\n else {\r\n this.customerMarginsFormArray.value.every(\r\n (customerMargin: any) => {\r\n if (customerMargin.amount <= 0) {\r\n isMarginLessThanZero = true;\r\n return false;\r\n }\r\n });\r\n }\r\n return isMarginLessThanZero;\r\n }\r\n\r\n cancelPricingTemplateEdit() {\r\n this.router\r\n .navigate(['/default-layout/pricing-templates/'])\r\n }\r\n\r\n deleteCustomerMargin(index: number) {\r\n this.pricingTemplateCalcService.adjustCustomerMarginValuesOnDelete(index, this.customerMarginsFormArray);\r\n }\r\n\r\n addCustomerMargin() {\r\n const customerMargin = {\r\n allin: 0,\r\n amount: this.decimalPrecisionPipe.transform(Number(0)),\r\n itp: 0,\r\n max: 99999,\r\n min: 1,\r\n oid: 0,\r\n priceTierId: 0,\r\n discountType: 0,\r\n templateId: this.id,\r\n };\r\n if (this.customerMarginsFormArray.length > 0) {\r\n const lastIndex = this.customerMarginsFormArray.length - 1;\r\n customerMargin.min =\r\n Math.abs(\r\n this.customerMarginsFormArray.at(lastIndex).value.min\r\n ) + 250;\r\n this.customerMarginsFormArray.at(lastIndex).patchValue(\r\n {\r\n max: Math.abs(customerMargin.min) - 1,\r\n },\r\n {\r\n emitEvent: false,\r\n }\r\n );\r\n }\r\n const group = {};\r\n forOwn(customerMargin, (value, key) => {\r\n group[key] = [value];\r\n });\r\n this.customerMarginsFormArray.push(\r\n this.formBuilder.group(group, { updateOn: 'blur' })\r\n );\r\n }\r\n updateCustomerMarginVolumeValues(index: number){\r\n this.pricingTemplateCalcService.adjustCustomerMarginPreviousValues(index,this.customerMarginsFormArray);\r\n this.pricingTemplateCalcService.adjustCustomerMarginNextValues(index,this.customerMarginsFormArray);\r\n }\r\n omitFeeAndTaxCheckChanged(feeAndTax: any): void {\r\n if (!feeAndTax.omitsByPricingTemplate) {\r\n feeAndTax.omitsByPricingTemplate = [];\r\n }\r\n let omitRecord: any = {\r\n fboFeeAndTaxId: feeAndTax.oid,\r\n oid: 0,\r\n pricingTemplateId: this.id,\r\n };\r\n if (feeAndTax.omitsByPricingTemplate.find(o => o.fboFeeAndTaxId == feeAndTax.oid) != undefined) {\r\n omitRecord = feeAndTax.omitsByPricingTemplate.find(o => o.fboFeeAndTaxId == feeAndTax.oid);\r\n } else {\r\n feeAndTax.omitsByPricingTemplate.push(omitRecord);\r\n }\r\n omitRecord.fboFeeAndTaxId = feeAndTax.oid;\r\n if (feeAndTax.isOmitted) {\r\n omitRecord.oid = 0;\r\n this.fboFeeAndTaxOmitsbyPricingTemplateService\r\n .add(omitRecord)\r\n .subscribe((response: any) => {\r\n omitRecord.oid = response.oid;\r\n this.recalculatePriceBreakdown();\r\n });\r\n } else {\r\n this.fboFeeAndTaxOmitsbyPricingTemplateService\r\n .remove(omitRecord)\r\n .subscribe(() => {\r\n feeAndTax.omitsByPricingTemplate = [];\r\n this.recalculatePriceBreakdown();\r\n });\r\n }\r\n }\r\n\r\n private readAndUploadFile(theFile: any) {\r\n const file = {\r\n ContentType: theFile.type,\r\n\r\n PricingTemplateId: this.id,\r\n\r\n FileData: null,\r\n // Set File Information\r\n FileName: theFile.name,\r\n };\r\n\r\n var printEventType = function (event) {\r\n var error = event;\r\n };\r\n\r\n // Use FileReader() object to get file to upload\r\n // NOTE: FileReader only works with newer browsers\r\n const reader = new FileReader();\r\n\r\n // Setup onload event for reader\r\n reader.onload = () => {\r\n // Store base64 encoded representation of file\r\n file.FileData = reader.result.toString();\r\n\r\n // POST to server\r\n this.pricingTemplatesService.uploadFileAttachment(file).subscribe((data: any) => {\r\n if (data.indexOf(\"Message:\") < 1) {\r\n this.isUploadingFile = false;\r\n this.fileUploadName.nativeElement.value = '';\r\n this.fileName = theFile.name;\r\n }\r\n });\r\n }\r\n\r\n // Read the file\r\n reader.readAsDataURL(theFile);\r\n reader.onerror = printEventType;\r\n }\r\n\r\n private loadPricingTemplateFeesAndTaxes(): void {\r\n this.fboFeesAndTaxesService\r\n .getByFboAndPricingTemplate(\r\n this.sharedService.currentUser.fboId,\r\n this.id\r\n )\r\n .subscribe((response: any[]) => {\r\n this.feesAndTaxes = response;\r\n });\r\n }\r\n\r\n private loadEmailContentTemplate(): void {\r\n this.emailContentService\r\n .getForFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n this.emailTemplatesDataSource = response;\r\n });\r\n }\r\n\r\n private recalculatePriceBreakdown(): void {\r\n // Set a timeout so the child component is aware of model changes\r\n const self = this;\r\n setTimeout(() => {\r\n self.priceBreakdownPreview.performRecalculation();\r\n self.feeAndTaxGeneralBreakdown.performRecalculation();\r\n });\r\n }\r\n\r\n private updateMargins(oldMargins, marginType , discountType ) {\r\n\r\n const margins = [...oldMargins];\r\n\r\n for (let i = 0; i < margins?.length; i++) {\r\n //in Cost Mode\r\n if (marginType !== 1) {\r\n if (margins[i].min !== null && margins[i].amount !== null) {\r\n if(discountType == 0)\r\n {\r\n margins[i].allin = Number(margins[i].amount);\r\n margins[i].itp = Number(margins[i].amount);\r\n }\r\n else\r\n {\r\n margins[i].allin =\r\n this.jetACost * Number(margins[i].amount)/100;\r\n }\r\n\r\n margins[i].itp = this.jetACost;\r\n if (margins[i].allin !== null) {\r\n margins[i].itp = margins[i].allin ;\r\n }\r\n }\r\n }\r\n\r\n //in Retail Mode\r\n else {\r\n if (margins[i].amount !== null && margins[i].min !== null) {\r\n\r\n if(discountType == 1)\r\n {\r\n margins[i].allin =\r\n this.jetARetail * (1 - (Number(margins[i].amount / 100)));\r\n }\r\n else{\r\n margins[i].allin =\r\n this.jetARetail - Number(margins[i].amount);\r\n }\r\n\r\n margins[i].itp = this.jetARetail;\r\n\r\n if (margins[i].allin) {\r\n margins[i].itp = margins[i].allin - this.jetACost;\r\n }\r\n\r\n console.log(i + \" \" + margins[i].itp + ' ' + this.jetARetail)\r\n\r\n }\r\n }\r\n if (margins[i].amount !== null || margins[i].amount !== '') {\r\n margins[i].amount = this.decimalPrecisionPipe.transform(margins[i].amount);\r\n this.pricingTemplate.discountType = discountType;\r\n }\r\n }\r\n return margins;\r\n }\r\n}\r\n\r\n\r\n\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n Saving Changes \r\n
\r\n
\r\n Changes Saved!\r\n
\r\n
\r\n

\r\n
\r\n
\r\n {{\r\n pricingTemplateForm.value.name\r\n }}\r\n \r\n close\r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n \r\n \r\n
General Information
\r\n
\r\n Default\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ emailContentTemplate.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 {{ marginType.text }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ discountType.text }}\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n\r\n
Volume Tiers
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n $\r\n %\r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
Min. (gal)
\r\n
\r\n
Max. (gal)
\r\n
\r\n
Margin
\r\n
\r\n
\r\n Total\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ (jetACost-0) + (customerMargin.value.amount-0) | currencyPresicion }}\r\n
\r\n
\r\n {{ (jetACost-0) + ((jetACost-0) * ((customerMargin.value.amount-0) / 100)) | currencyPresicion }}\r\n
\r\n
\r\n {{ (jetARetail-0) - (customerMargin.value.amount-0) | currencyPresicion }}\r\n
\r\n
\r\n {{ (jetARetail-0) - ((jetARetail-0) * (customerMargin.value.amount-0) / 100) | currencyPresicion }}\r\n
\r\n
\r\n
\r\n
1\">\r\n \r\n
\r\n
\r\n
Tax/Fee Exclusions
\r\n \r\n \r\n
\r\n\r\n
Fuel Uplift Notes
\r\n
\r\n \r\n \r\n
\r\n \r\n\r\n \r\n
Template Prices
\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 {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, SortDirection } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Store } from '@ngrx/store';\r\nimport { GridBase } from 'src/app/services/tables/GridBase';\r\n\r\n// Services\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport { CustomcustomertypesService } from '../../../services/customcustomertypes.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { State } from '../../../store/reducers';\r\nimport { getPricingTemplateState } from '../../../store/selectors/pricing-template';\r\nimport { PricingTemplatesDialogCopyTemplateComponent } from '../pricing-template-dialog-copy-template/pricing-template-dialog-copy-template.component';\r\nimport { PricingTemplatesDialogDeleteWarningComponent } from '../pricing-template-dialog-delete-warning-template/pricing-template-dialog-delete-warning.component';\r\n// Components\r\nimport { PricingTemplatesDialogNewTemplateComponent } from '../pricing-templates-dialog-new-template/pricing-templates-dialog-new-template.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport interface DefaultTemplateUpdate {\r\n currenttemplate: number;\r\n newtemplate: number;\r\n fboid: number;\r\n isDeleting: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-pricing-templates-grid',\r\n styleUrls: ['./pricing-templates-grid.component.scss'],\r\n templateUrl: './pricing-templates-grid.component.html',\r\n})\r\nexport class PricingTemplatesGridComponent extends GridBase implements OnInit {\r\n // Input/Output Bindings\r\n @Output() editPricingTemplateClicked = new EventEmitter();\r\n @Output() deletePricingTemplateClicked = new EventEmitter();\r\n @Output() copyPricingTemplateClicked = new EventEmitter();\r\n @Output() newPricingTemplateAdded = new EventEmitter();\r\n @Input() pricingTemplatesData: Array;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n // Public Members\r\n public dataSource: MatTableDataSource = null;\r\n public displayedColumns: string[] = [\r\n 'isInvalid',\r\n 'name',\r\n 'marginTypeDescription',\r\n 'pricingFormula',\r\n 'allInPrice',\r\n 'customersAssigned',\r\n 'aircraftsAssigned',\r\n 'copy',\r\n 'delete',\r\n ];\r\n\r\n public updateModel: DefaultTemplateUpdate = {\r\n currenttemplate: 0,\r\n fboid: 0,\r\n newtemplate: 0,\r\n isDeleting: true\r\n };\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private store: Store,\r\n public newTemplateDialog: MatDialog,\r\n public copyTemplateDialog: MatDialog,\r\n public deleteTemplateWarningDialog: MatDialog,\r\n private sharedService: SharedService,\r\n public customCustomerService: CustomcustomertypesService,\r\n public pricingTemplatesService: PricingtemplatesService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.pricingTemplatesData) {\r\n return;\r\n }\r\n\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.dataSource = new MatTableDataSource(\r\n this.pricingTemplatesData\r\n );\r\n this.dataSource.sort = this.sort;\r\n this.dataSource.paginator = this.paginator;\r\n\r\n this.updateModel.currenttemplate = 0;\r\n\r\n this.store.select(getPricingTemplateState).subscribe((state) => {\r\n if (state.filter) {\r\n this.dataSource.filter = state.filter;\r\n }\r\n if (state.page) {\r\n this.paginator.pageIndex = state.page;\r\n }\r\n if (state.order) {\r\n this.sort.active = state.order;\r\n }\r\n if (state.orderBy) {\r\n this.sort.direction = state.orderBy as SortDirection;\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n public editPricingTemplate(pricingTemplate) {\r\n this.editPricingTemplateClicked.emit({\r\n filter: this.dataSource.filter,\r\n order: this.dataSource.sort.active,\r\n orderBy: this.dataSource.sort.direction,\r\n page: this.dataSource.paginator.pageIndex,\r\n pricingTemplateId: pricingTemplate.oid,\r\n });\r\n }\r\n\r\n public addNewPricingTemplate() {\r\n const dialogRef = this.newTemplateDialog.open(\r\n PricingTemplatesDialogNewTemplateComponent,\r\n {\r\n data: {\r\n fboId: this.sharedService.currentUser.fboId,\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.newPricingTemplateAdded.emit();\r\n this.sharedService.NotifyPricingTemplateComponent(\r\n 'updateComponent'\r\n );\r\n });\r\n }\r\n\r\n public deletePricingTemplate(pricingTemplate) {\r\n if (pricingTemplate.default) {\r\n const dialogRef = this.deleteTemplateWarningDialog.open(\r\n PricingTemplatesDialogDeleteWarningComponent,\r\n {\r\n autoFocus: false,\r\n data: { data: this.pricingTemplatesData, action: \"deleting\" },\r\n width: '600px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((response) => {\r\n if (response !== 'cancel') {\r\n this.updateModel.currenttemplate = pricingTemplate.oid;\r\n this.updateModel.fboid = pricingTemplate.fboid;\r\n this.updateModel.newtemplate = response;\r\n this.updateModel.isDeleting = true;\r\n\r\n this.customCustomerService\r\n .updateDefaultTemplate(this.updateModel)\r\n .subscribe((result) => {\r\n if (result) {\r\n this.newPricingTemplateAdded.emit();\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n this.deletePricingTemplateClicked.emit(pricingTemplate);\r\n }\r\n }\r\n\r\n public copyPricingTemplate(pricingTemplate) {\r\n if (pricingTemplate) {\r\n const dialogRef = this.copyTemplateDialog.open(\r\n PricingTemplatesDialogCopyTemplateComponent,\r\n {\r\n data: { currentPricingTemplateId: pricingTemplate.oid },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result != 'cancel') {\r\n this.pricingTemplatesService.copy(result).subscribe((response) => {\r\n this.newPricingTemplateAdded.emit();\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n public applyFilter(filterValue: string) {\r\n this.dataSource.filter = filterValue\r\n .trim()\r\n .toLowerCase();\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \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 {{ pricingTemplate.name }}\r\n Default\r\n \r\n Pricing Type\r\n \r\n {{ pricingTemplate.marginTypeDescription }}\r\n \r\n Pricing Formula\r\n \r\n {{ pricingTemplate.pricingFormula }}\r\n \r\n All-In\r\n \r\n
\r\n {{ pricingTemplate.allInPrice > 0 ? (pricingTemplate.allInPrice | currencyPresicion) : \"Expired\" }}\r\n
\r\n
\r\n Customers Assigned\r\n \r\n {{ pricingTemplate.customersAssigned }}\r\n \r\n Aircraft Assigned\r\n \r\n {{ pricingTemplate.aircraftsAssigned }}\r\n  \r\n
\r\n \r\n
\r\n
\r\n
\r\n \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 { AfterViewInit, Component, OnDestroy } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { Store } from '@ngrx/store';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\n// Services\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { FbopricesService } from \"../../../services/fboprices.service\";\r\n\r\n// Components\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { pricingTemplateGridSet } from '../../../store/actions';\r\nimport { State } from '../../../store/reducers';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n selector: 'app-pricing-templates-home',\r\n styleUrls: ['./pricing-templates-home.component.scss'],\r\n templateUrl: './pricing-templates-home.component.html',\r\n})\r\nexport class PricingTemplatesHomeComponent implements AfterViewInit, OnDestroy {\r\n // Public Members\r\n public pageTitle = 'ITP Margin Templates';\r\n public pricingTemplatesData: Array;\r\n public locationChangedSubscription: any;\r\n\r\n public chartName = 'PricingTemplates';\r\n constructor(\r\n private router: Router,\r\n private store: Store,\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private sharedService: SharedService,\r\n private fboPricesService: FbopricesService,\r\n public deleteFBODialog: MatDialog,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.loadPricingTemplateData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.locationChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.loadPricingTemplateData();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.locationChangedSubscription) {\r\n this.locationChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public loadPricingTemplateData() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.pricingTemplatesData = null;\r\n this.pricingTemplatesService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((data: any) => {\r\n this.pricingTemplatesData = data;\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n\r\n public editPricingTemplateClicked($event) {\r\n this.store.dispatch(\r\n pricingTemplateGridSet({\r\n filter: $event.filter,\r\n order: $event.order,\r\n orderBy: $event.orderBy,\r\n page: $event.page,\r\n })\r\n );\r\n this.router\r\n .navigate([\r\n '/default-layout/pricing-templates/' + $event.pricingTemplateId,\r\n ])\r\n .then(() => {});\r\n }\r\n\r\n public deletePricingTemplateClicked(pricingTemplate) {\r\n const dialogRef = this.deleteFBODialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'Margin Template', item: pricingTemplate, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.pricingTemplatesData = null;\r\n this.pricingTemplatesService\r\n .remove({\r\n fboId: this.sharedService.currentUser.fboId,\r\n oid: pricingTemplate.oid,\r\n })\r\n .subscribe(() => {\r\n this.pricingTemplatesService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((data: any) => {\r\n this.pricingTemplatesData = data;\r\n });\r\n\r\n this.fboPricesService.handlePriceChangeCleanUp(this.sharedService.currentUser.fboId);\r\n });\r\n\r\n this.sharedService.NotifyPricingTemplateComponent(\r\n 'updateComponent'\r\n );\r\n });\r\n }\r\n\r\n public newPricingTemplateAdded() {\r\n this.pricingTemplatesData = null;\r\n this.pricingTemplatesService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((data: any) => {\r\n this.pricingTemplatesData = data;\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 { FormArray } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PricingTemplateCalcService {\r\n\r\n constructor() { }\r\n public adjustCustomerMarginNextValues(index: number, customerMarginsFormArray: FormArray): void {\r\n for(let i: number = index; i < customerMarginsFormArray.length ; i++){\r\n let currentMinValue: number = parseFloat(customerMarginsFormArray.at(i).get('min').value);\r\n let currentMaxValue: number = parseFloat(customerMarginsFormArray.at(i).get('max').value);\r\n\r\n\r\n if(i == index){\r\n if(currentMinValue < currentMaxValue) break;\r\n customerMarginsFormArray.at(i).patchValue({\r\n max: currentMinValue + 1,\r\n });\r\n continue;\r\n }\r\n\r\n currentMinValue = parseFloat(customerMarginsFormArray.at(i).get('min').value);\r\n let previousMaxValue: number = parseFloat(customerMarginsFormArray.at(i-1).get('max').value);\r\n\r\n if(currentMinValue > previousMaxValue) break;\r\n\r\n customerMarginsFormArray.at(i).patchValue({\r\n min: previousMaxValue + 1,\r\n });\r\n\r\n currentMinValue = customerMarginsFormArray.at(i).get('min').value;\r\n currentMaxValue = parseFloat(customerMarginsFormArray.at(i).get('max').value);\r\n\r\n if(currentMinValue < currentMaxValue) break;\r\n\r\n customerMarginsFormArray.at(i).patchValue({\r\n max: currentMinValue + 1,\r\n });\r\n }\r\n }\r\n public adjustCustomerMarginPreviousValues(index: number, customerMarginsFormArray: FormArray): void {\r\n for(let i: number = index; i > 0 ; i--){\r\n let previousIndex: number = i - 1;\r\n let modifedMinValue: number = customerMarginsFormArray.at(i).get('min').value;\r\n let previousValueMax: number = customerMarginsFormArray.at(previousIndex).get('max').value;\r\n\r\n if(modifedMinValue < 1){\r\n customerMarginsFormArray.at(i).patchValue({\r\n min: 0,\r\n });\r\n }\r\n\r\n customerMarginsFormArray.at(previousIndex).patchValue({\r\n max: (modifedMinValue < 1) ? 0: modifedMinValue - 1,\r\n });\r\n\r\n let previousValueMin: number = customerMarginsFormArray.at(previousIndex).get('min').value;\r\n previousValueMax = customerMarginsFormArray.at(previousIndex).get('max').value;\r\n\r\n if(previousValueMin >= previousValueMax){\r\n customerMarginsFormArray.at(previousIndex).patchValue({\r\n min: (previousValueMax < 1) ? 0: previousValueMax - 1,\r\n });\r\n }\r\n }\r\n }\r\n public adjustCustomerMarginValuesOnDelete(deletedIndex: number, customerMarginsFormArray: FormArray): void {\r\n customerMarginsFormArray.removeAt(deletedIndex);\r\n\r\n if(deletedIndex == 0) {\r\n customerMarginsFormArray\r\n .at(deletedIndex)\r\n .patchValue({\r\n min: 1,\r\n });\r\n return;\r\n };\r\n\r\n if(deletedIndex == customerMarginsFormArray.length) {\r\n customerMarginsFormArray\r\n .at(deletedIndex -1)\r\n .patchValue({\r\n max: 99999,\r\n });\r\n return;\r\n };\r\n\r\n let previousMaxValue : number = parseFloat(customerMarginsFormArray.at(deletedIndex - 1).get('max').value);\r\n\r\n customerMarginsFormArray.at(deletedIndex).patchValue({\r\n min: previousMaxValue + 1,\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { RampfeesService } from '../../../services/rampfees.service';\r\n// Components\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { SnackBarService } from 'src/app/services/utils/snackBar.service';\r\nimport { rampfeeCategoryType } from 'src/app/enums/ramp-fee.enum';\r\n\r\n@Component({\r\n selector: 'app-ramp-fees-category',\r\n styleUrls: ['./ramp-fees-category.component.scss'],\r\n templateUrl: './ramp-fees-category.component.html',\r\n})\r\nexport class RampFeesCategoryComponent implements OnInit {\r\n @Output() rampFeeFieldChanged = new EventEmitter();\r\n @Output() rampFeeDeleted = new EventEmitter();\r\n @Input() aircraftTypes: any[];\r\n @Input() rampFees: any;\r\n @Input() categoryTitle: string;\r\n @Input() categoryTypes: Array;\r\n @Input() supportedValues: Array = [];\r\n @Input() sortedValues: Array = [];\r\n @Input() expirationDate: any;\r\n\r\n public aircraftSizes: Array;\r\n public rampFeesForCategory: Array = [];\r\n public tmpArray: Array = [];\r\n\r\n constructor(\r\n private rampFeesService: RampfeesService,\r\n private deleteRampFeeDialog: MatDialog,\r\n private snackBarService: SnackBarService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.rampFeesForCategory = [];\r\n this.rampFees.forEach((fee) => {\r\n if (this.categoryTypes.indexOf(fee.categoryType) > -1) {\r\n fee.isWaivedNegative = false;\r\n fee.isCategoryValueNegative = false;\r\n fee.isFeeNegative = false;\r\n fee.isCategoryMinValueGrater = false;\r\n fee.requiresUpdate = null;\r\n\r\n if (\r\n this.supportedValues.length === 0 ||\r\n this.supportedValues.indexOf(fee.categoryMinValue) > -1\r\n ) {\r\n this.rampFeesForCategory.push(fee);\r\n }\r\n\r\n this.tmpArray.push(fee);\r\n }\r\n });\r\n\r\n this.tmpArray.forEach((fee) => {\r\n if (\r\n fee.categoryMinValue > 0 &&\r\n this.sortedValues.indexOf(fee.categoryMinValue) > -1\r\n ) {\r\n this.rampFeesForCategory.splice(\r\n this.sortedValues.indexOf(fee.categoryMinValue),\r\n 1,\r\n fee\r\n );\r\n }\r\n });\r\n }\r\n public rampFeeRequiresUpdate(fee) {\r\n const evaluateCategory = fee.categoryType != 1;\r\n fee.isWaivedNegative = false;\r\n fee.isCategoryValueNegative = false;\r\n fee.isFeeNegative = false;\r\n fee.isCategoryMinValueGrater = false;\r\n fee.requiresUpdate = true;\r\n\r\n if (fee.waived < 0)\r\n fee.isWaivedNegative = true;\r\n\r\n if (fee.price < 0)\r\n fee.isFeeNegative = true;\r\n\r\n if (evaluateCategory && fee.categoryMinValue >= fee.categoryMaxValue)\r\n fee.isCategoryMinValueGrater = true;\r\n\r\n if (evaluateCategory && (fee.categoryMinValue < 0 || fee.categoryMaxValue < 0))\r\n fee.isCategoryValueNegative = true;\r\n\r\n fee.requiresUpdate = !(fee.isWaivedNegative \r\n || fee.isCategoryValueNegative || fee.isFeeNegative || fee.isCategoryMinValueGrater);\r\n this.rampFeeFieldChanged.emit();\r\n }\r\n\r\n public deleteRampFee(fee) {\r\n const dialogRef = this.deleteRampFeeDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'ramp fee', item: fee, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.rampFeesService.remove(result.item).subscribe(() => {\r\n this.rampFeeDeleted.emit();\r\n this.snackBarService.showSuccessSnackBar(`Custom ramp fee deleted`);\r\n });\r\n });\r\n }\r\n getLabel(fee: any): string{\r\n\r\n if(this.categoryTypes.includes(1))\r\n return fee.sizeDescription;\r\n\r\n if(fee.categoryType == rampfeeCategoryType.aicraft)\r\n return ` ${fee.aircraftMake} ${fee.aircraftModel}`;\r\n\r\n let label = fee.categoryDescription;\r\n\r\n if(fee.categoryType == rampfeeCategoryType.weightRange)\r\n label += ` ${fee.categoryMinValue} - ${fee.categoryMaxValue}`;\r\n\r\n if(fee.categoryType == rampfeeCategoryType.wingspan)\r\n label += ` ${fee.categoryMinValue} - ${fee.categoryMaxValue}`;\r\n\r\n if(fee.categoryType == rampfeeCategoryType.tailnumber)\r\n label += ` ${fee.categoryStringValue}`;\r\n\r\n return label;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n expand_more\r\n expand_less\r\n
\r\n \r\n {{getLabel(fee)}}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n $\r\n \r\n
Fee cannot be negative
\r\n
\r\n
\r\n \r\n \r\n Gal.\r\n \r\n
Avoidance cannot be negative
\r\n
\r\n
\r\n \r\n
\r\n \r\n Delete\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ aircraft.make }} {{ aircraft.model }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ aircraftType.make }}\r\n {{ aircraftType.model }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
Weight Range
\r\n
\r\n \r\n \r\n Lbs.\r\n \r\n
Weight cannot be negative
\r\n
Min value cannot be grater than Max value
\r\n
\r\n
to
\r\n
\r\n \r\n \r\n Lbs.\r\n \r\n
\r\n
\r\n
\r\n
Wingspan
\r\n
\r\n \r\n \r\n Feet\r\n \r\n
Wingspan cannot be negative
\r\n
\r\n
to
\r\n
\r\n \r\n \r\n Feet\r\n \r\n
\r\n
\r\n
\r\n
\r\n Tail Number: \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Subscription } from 'rxjs';\r\n\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { Parametri } from '../../../services/paremeters.service';\r\nimport { rampfeeCategoryType } from 'src/app/enums/ramp-fee.enum';\r\n\r\nexport interface NewRampFeeDialogData {\r\n oid: number;\r\n price: number;\r\n waived: number;\r\n fboId: number;\r\n expirationDate: string;\r\n categoryType: number;\r\n categoryMinValue: number;\r\n categoryMaxValue: number;\r\n categoryStringValue: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-ramp-fees-dialog-new-fee',\r\n styleUrls: ['./ramp-fees-dialog-new-fee.component.scss'],\r\n templateUrl: './ramp-fees-dialog-new-fee.component.html',\r\n})\r\nexport class RampFeesDialogNewFeeComponent {\r\n public categoryTypes: any[] = [\r\n { text: 'Aircraft Make/Model', value: 2 },\r\n { text: 'Weight Range', value: 3 },\r\n { text: 'Wingspan', value: 4 },\r\n { text: 'Tail Number', value: 5 },\r\n ];\r\n public aircraftTypes: any[];\r\n subscription: Subscription;\r\n\r\n //Errors\r\n public isWaivedNegative = false;\r\n public isCategoryValueNegative = false;\r\n public isFeeNegative = false;\r\n public isMaxCategoryGrater = true;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewRampFeeDialogData,\r\n private aircraftsService: AircraftsService,\r\n private messageService: Parametri\r\n ) {\r\n this.data.categoryType = rampfeeCategoryType.aicraft;\r\n this.messageService\r\n .getMessage()\r\n .subscribe((mymessage) => (this.data.expirationDate = mymessage));\r\n this.aircraftsService\r\n .getAll()\r\n .subscribe((result: any) => (this.aircraftTypes = result));\r\n }\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public checkForWaivedNegativeValue(value) {\r\n this.isWaivedNegative = false;\r\n\r\n if (value < 0)\r\n this.isWaivedNegative = true;\r\n }\r\n public getErrorData() {\r\n }\r\n public checkCategoryValidation(data): void {\r\n this.checkForCategoryValueNegativeValue(data);\r\n this.checkForCategoryMinValueGrater(data);\r\n }\r\n public checkForCategoryMinValueGrater(data): void {\r\n this.isMaxCategoryGrater = false;\r\n\r\n if (data.categoryMinValue < data.categoryMaxValue)\r\n this.isMaxCategoryGrater = true;\r\n }\r\n public checkForCategoryValueNegativeValue(data): void {\r\n this.isCategoryValueNegative = false;\r\n\r\n if (data.categoryMinValue < 0 || data.categoryMaxValue < 0)\r\n this.isCategoryValueNegative = true;\r\n }\r\n\r\n public checkForFeeNegativeValue(value) {\r\n this.isFeeNegative = false;\r\n\r\n if (value < 0)\r\n this.isFeeNegative = true;\r\n }\r\n}\r\n","

New Ramp Fee

\r\n
\r\n \r\n \r\n \r\n {{ categoryType.text }}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n $\r\n \r\n
Fee cannot be negative
\r\n
\r\n
\r\n \r\n \r\n Gal.\r\n \r\n
Avoidance cannot be negative
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ aircraftType.make }} {{ aircraftType.model }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Lbs.\r\n \r\n
\r\n {{ isMaxCategoryGrater ? '' : 'Max. Weight should be greater than Min. Weight' }}
\r\n {{ !isCategoryValueNegative ? '' : 'Weight cannot be negative'}}\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n Lbs.\r\n \r\n
\r\n
\r\n \r\n \r\n Feet\r\n \r\n
\r\n {{ isMaxCategoryGrater ? '' : 'Max. Wingspan should be greater than Min. Wingspan' }}
\r\n {{ !isCategoryValueNegative ? '' : 'Wingspan cannot be negative'}}\r\n
\r\n
\r\n
\r\n \r\n \r\n Feet\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n save\r\n Add Ramp Fee\r\n \r\n \r\n
\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n/*import FlatfileImporter from 'flatfile-csv-importer';*/\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { Parametri } from '../../../services/paremeters.service';\r\n// Services\r\nimport { RampfeesService } from '../../../services/rampfees.service';\r\nimport { RampFeesCategoryComponent } from '../ramp-fees-category/ramp-fees-category.component';\r\n// Components\r\nimport { RampFeesDialogNewFeeComponent } from '../ramp-fees-dialog-new-fee/ramp-fees-dialog-new-fee.component';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n selector: 'app-ramp-fees-home',\r\n styleUrls: ['./ramp-fees-home.component.scss'],\r\n templateUrl: './ramp-fees-home.component.html',\r\n})\r\nexport class RampFeesHomeComponent implements OnInit, AfterViewInit, OnDestroy {\r\n @ViewChild('customRampFeeCat')\r\n public customRampFeeCat: RampFeesCategoryComponent;\r\n\r\n public pageTitle = 'Ramp Fees';\r\n\r\n public rampFees: any[];\r\n public requiresUpdate = false;\r\n public expirationDate: any;\r\n public locationChangedSubscription: any;\r\n public aircraftTypes: any[];\r\n\r\n public chartName = 'rampfees';\r\n\r\n /*LICENSE_KEY = '9eef62bd-4c20-452c-98fd-aa781f5ac111';*/\r\n\r\n results = '[]';\r\n\r\n /*private importer: FlatfileImporter;*/\r\n\r\n constructor(\r\n private rampFeesService: RampfeesService,\r\n private sharedService: SharedService,\r\n private aircraftsService: AircraftsService,\r\n public newRampFeeDialog: MatDialog,\r\n public importFeesInfoDialog: MatDialog,\r\n private messageService: Parametri,\r\n private ngxLoader: NgxUiLoaderService\r\n ) {\r\n this.aircraftsService\r\n .getAll()\r\n .subscribe((data: any) => (this.aircraftTypes = data));\r\n }\r\n\r\n ngOnInit() {\r\n this.initRampfees();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.locationChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.rampFees = null;\r\n this.initRampfees();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.locationChangedSubscription) {\r\n this.locationChangedSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public initRampfees() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.rampFeesService\r\n .getForFbo({ oid: this.sharedService.currentUser.fboId })\r\n .subscribe((data: any) => {\r\n this.rampFees = data;\r\n\r\n if (data) {\r\n this.expirationDate = data[1].expirationDate;\r\n }\r\n\r\n this.messageService.updateMessage(this.expirationDate);\r\n this.messageService\r\n .getMessage()\r\n .subscribe(\r\n (mymessage: any) => (this.expirationDate = mymessage)\r\n );\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n\r\n //FlatfileImporter.setVersion(2);\r\n //this.initializeImporter();\r\n //this.importer.setCustomer({\r\n // name: 'WebsiteImport',\r\n // userId: '1',\r\n //});\r\n }\r\n\r\n public addNewRampFeeClicked() {\r\n const dialogRef = this.newRampFeeDialog.open(\r\n RampFeesDialogNewFeeComponent,\r\n {\r\n data: {},\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n result.fboId = this.sharedService.currentUser.fboId;\r\n this.rampFeesService.add(result).subscribe((data: any) => {\r\n this.loadRampFees();\r\n });\r\n });\r\n }\r\n\r\n public rampFeeFieldChanged() {\r\n this.requiresUpdate = !(this.rampFees.filter(x => x.requiresUpdate === false).length > 0);\r\n }\r\n\r\n public rampFeeDeleted() {\r\n this.loadRampFees();\r\n }\r\n\r\n public rampFeeRequiresUpdate() {\r\n this.rampFees.forEach((fee) => {\r\n fee.ExpirationDate = this.expirationDate;\r\n this.updateRampFee(fee);\r\n });\r\n this.messageService.updateMessage(this.expirationDate);\r\n this.loadRampFees();\r\n }\r\n\r\n public saveChanges() {\r\n this.rampFees.forEach((fee) => {\r\n if (fee.requiresUpdate) {\r\n this.updateRampFee(fee);\r\n }\r\n });\r\n this.requiresUpdate = false;\r\n }\r\n\r\n //public informForRampFees() {\r\n // const dialogRef = this.importFeesInfoDialog.open(\r\n // RampFeesImportInformationComponent,\r\n // {}\r\n // );\r\n\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // if (!result) {\r\n // return;\r\n // } else {\r\n // this.launchImporter();\r\n // }\r\n // });\r\n //}\r\n\r\n\r\n //[#hz0jtd] FlatFile importer was requested to be removed\r\n //async launchImporter() {\r\n // if (!this.LICENSE_KEY) {\r\n // return alert('Set LICENSE_KEY on Line 13 before continuing.');\r\n // }\r\n // try {\r\n // const results = await this.importer.requestDataFromUser();\r\n // this.importer.displayLoader();\r\n\r\n // if (results) {\r\n // results.data.forEach((result) => {\r\n // result.fboid = this.sharedService.currentUser.fboId;\r\n // });\r\n\r\n // this.rampFeesService\r\n // .importrampfees(results.data)\r\n // .subscribe((data: any) => {\r\n // if (data) {\r\n // this.importer.displaySuccess(\r\n // 'Data successfully imported!'\r\n // );\r\n // setTimeout(() => {\r\n // this.loadRampFees();\r\n // }, 1500);\r\n // }\r\n // });\r\n // }\r\n // } catch (e) {}\r\n //}\r\n\r\n //initializeImporter() {\r\n // this.importer = new FlatfileImporter(this.LICENSE_KEY, {\r\n // allowCustom: true,\r\n // allowInvalidSubmit: true,\r\n // disableManualInput: false,\r\n // fields: [\r\n // {\r\n // alternates: ['Icao'],\r\n // description: 'Icao',\r\n // key: 'icao',\r\n // label: 'ICAO',\r\n // },\r\n // {\r\n // alternates: ['fbo'],\r\n // description: 'FBO',\r\n // key: 'fbo',\r\n // label: 'FBO',\r\n // },\r\n // {\r\n // alternates: ['make'],\r\n // description: 'Aircraft Make',\r\n // key: 'Make',\r\n // label: 'Make',\r\n // },\r\n // {\r\n // alternates: ['model'],\r\n // description: 'Tail',\r\n // key: 'Model',\r\n // label: 'Model',\r\n // },\r\n // {\r\n // alternates: ['Ramp Fee', 'ramp fee'],\r\n // description: 'Ramp Fee',\r\n // key: 'RampFee',\r\n // label: 'Ramp Fee ($)',\r\n // },\r\n // {\r\n // alternates: ['Waived At', 'waived at'],\r\n // description: 'Waived Fees',\r\n // key: 'WaivedAt',\r\n // label: 'Waived At (gal)',\r\n // },\r\n // {\r\n // alternates: ['landing'],\r\n // description: 'Landing Fees',\r\n // key: 'Landing',\r\n // label: 'Landing',\r\n // },\r\n // {\r\n // alternates: ['overnight', 'overnight fees'],\r\n // description: 'Overnight Fees',\r\n // key: 'Overnight',\r\n // label: 'Overnight',\r\n // },\r\n // {\r\n // alternates: ['tail number', 'tail-number'],\r\n // description: 'Tail Number',\r\n // key: 'TailNumber',\r\n // label: 'Tail Number',\r\n // },\r\n // {\r\n // alternates: ['aircreft size'],\r\n // description: 'Aircraft Size',\r\n // key: 'aircraftsize',\r\n // label: 'Aircraft Size',\r\n // },\r\n // {\r\n // alternates: ['avoidance'],\r\n // description: 'Avoidance',\r\n // key: 'avoidance',\r\n // label: 'Avoidance',\r\n // },\r\n // ],\r\n // managed: true,\r\n // type: 'RampFees',\r\n // });\r\n //}\r\n\r\n // Private Methods\r\n private updateRampFee(fee) {\r\n if (!fee.fboid) {\r\n fee.fboid = this.sharedService.currentUser.fboId;\r\n }\r\n if (fee.oid && fee.oid > 0) {\r\n this.rampFeesService.update(fee).subscribe((data: any) => {});\r\n } else {\r\n this.rampFeesService.add(fee).subscribe((data: any) => {\r\n fee.oid = data.oid;\r\n });\r\n }\r\n }\r\n\r\n private loadRampFees() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n\r\n this.rampFees = undefined;\r\n this.rampFeesService\r\n .getForFbo({ oid: this.sharedService.currentUser.fboId })\r\n .subscribe((data: any) => {\r\n this.rampFees = data;\r\n if (this.customRampFeeCat) {\r\n this.customRampFeeCat.refreshData();\r\n }\r\n this.ngxLoader.stopLoader(this.chartName);\r\n });\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Save Changes\r\n \r\n
\r\n \r\n \r\n \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 Jets\r\n \r\n \r\n \r\n \r\n \r\n \r\n Pistons and Turboprops\r\n \r\n \r\n \r\n \r\n \r\n \r\n Helicopters\r\n \r\n \r\n \r\n \r\n \r\n \r\n Custom\r\n \r\n By type, wingspan, weight, or tail\r\n \r\n Add New\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-ramp-fees-import-informatino-dialog',\r\n styleUrls: ['./ramp-fees-import-information-dialog.component.scss'],\r\n templateUrl: './ramp-fees-import-information-dialog.component.html',\r\n})\r\nexport class RampFeesImportInformationComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef\r\n ) {}\r\n\r\n public onOkClick(): void {\r\n this.dialogRef.close('ok');\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Ramp Fees Import Information

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

\r\n Please make sure the first row of the file contains the column\r\n names.\r\n

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Inject, Output, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport {SharedService } from '../../../layouts/shared-service';\r\nimport { ServiceOrderService } from 'src/app/services/serviceorder.service';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { CustomeraircraftsService } from 'src/app/services/customeraircrafts.service';\r\nimport { AcukwikairportsService } from '../../../services/acukwikairports.service';\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { FuelreqsService } from 'src/app/services/fuelreqs.service';\r\n\r\nimport { ServiceOrder } from 'src/app/models/service-order';\r\nimport { CustomerInfoByGroup } from 'src/app/models/customer-info-by-group';\r\nimport { CustomerAircraft } from 'src/app/models/customer-aircraft';\r\nimport { EntityResponseMessage } from 'src/app/models/entity-response-message';\r\nimport { ServiceOrderAppliedDateTypes } from '../../../enums/service-order-applied-date-types';\r\nimport { AircraftType } from 'src/app/models/aircraft';\r\nimport {EnumOptions} from '../../../models/enum-options';\r\nimport { share } from 'rxjs/operators';\r\nimport { FuelReq } from '../../../models/fuelreq';\r\n\r\n@Component({\r\n selector: 'app-service-orders-dialog-new',\r\n templateUrl: './service-orders-dialog-new.component.html',\r\n})\r\nexport class ServiceOrdersDialogNewComponent implements OnInit {\r\n public errorMessage: string;\r\n public warningMessage: string;\r\n public customerInfoByGroupDataSource: CustomerInfoByGroup[];\r\n public customerAircraftsDataSource: CustomerAircraft[] = [];\r\n public appliedDateTypes: EnumOptions.EnumOption[] = EnumOptions.serviceOrderAppliedDateTypeOptions;\r\n public aircraftTypes: Array;\r\n public selectedAircraftId: number;\r\n public dialogLoader: string = 'dialogLoader';\r\n public filters = {\r\n tailNumberFilter: ''\r\n };\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ServiceOrder,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private serviceOrderService: ServiceOrderService,\r\n private sharedService: SharedService,\r\n private acukwikAirportsService: AcukwikairportsService,\r\n private aircraftsService: AircraftsService,\r\n private fuelreqsService: FuelreqsService) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n //Initialize an empty aircraft\r\n this.onCustomerAircraftFilterChanged('');\r\n this.loadCustomerAircraftsDataSource();\r\n this.loadCustomerInfoByGroupDataSource();\r\n this.loadAircraftTypes();\r\n } \r\n\r\n public onCustomerInfoByGroupChanged(selectedCustomerInfoByGroup: CustomerInfoByGroup): void {\r\n this.data.customerInfoByGroup = selectedCustomerInfoByGroup;\r\n\r\n this.data.customerInfoByGroupId = this.data.customerInfoByGroup.oid;\r\n if (this.data.customerInfoByGroupId > 0) {\r\n this.loadCustomerAircraftsDataSource();\r\n }\r\n this.setWarningMessage();\r\n }\r\n\r\n public onCustomerFilterChanged(event) {\r\n if (event == '' || event == null) {\r\n this.data.customerInfoByGroup = null;\r\n } else {\r\n this.data.customerInfoByGroup = {\r\n oid: 0,\r\n company: event,\r\n groupId: this.sharedService.currentUser.groupId,\r\n customerId: 0\r\n };\r\n }\r\n \r\n this.data.customerInfoByGroupId = 0;\r\n this.customerAircraftsDataSource = [];\r\n }\r\n\r\n public onCustomerAircraftChanged(customerAircraft: CustomerAircraft): void {\r\n if (customerAircraft == null) {\r\n this.onCustomerAircraftFilterChanged('');\r\n } else {\r\n this.data.customerAircraft = customerAircraft;\r\n this.data.customerAircraftId = this.data.customerAircraft.oid;\r\n this.loadCustomerInfoByGroupDataSource();\r\n }\r\n this.setWarningMessage();\r\n }\r\n\r\n public onCustomerAircraftFilterChanged(event) {\r\n this.data.customerAircraft = {\r\n oid: 0,\r\n groupId: this.sharedService.currentUser.groupId,\r\n customerId: 0,\r\n tailNumber: event,\r\n aircraftId: this.selectedAircraftId\r\n } \r\n this.data.customerAircraftId = 0; \r\n }\r\n\r\n public onAircraftTypeChanged(aircraftType: AircraftType) {\r\n this.selectedAircraftId = aircraftType.aircraftId;\r\n this.data.customerAircraft.aircraftId = this.selectedAircraftId;\r\n }\r\n\r\n public onArrivalDateTimeLocalChanged() {\r\n this.acukwikAirportsService.getAirportZuluTime(this.sharedService.currentUser.icao, this.data.arrivalDateTimeLocal).subscribe((response: Date) => {\r\n if (response)\r\n this.data.arrivalDateTimeUtc = response;\r\n if (this.data.serviceOn == ServiceOrderAppliedDateTypes.Arrival) {\r\n this.data.serviceDateTimeLocal = this.data.arrivalDateTimeLocal;\r\n this.data.serviceDateTimeUtc = this.data.arrivalDateTimeUtc;\r\n }\r\n if (this.data.departureDateTimeUtc == null || this.data.arrivalDateTimeUtc > this.data.departureDateTimeUtc) {\r\n this.data.departureDateTimeLocal = this.data.arrivalDateTimeLocal;\r\n this.onDepartureDateTimeLocalChanged();\r\n }\r\n this.setWarningMessage();\r\n });\r\n }\r\n\r\n public onDepartureDateTimeLocalChanged() {\r\n this.acukwikAirportsService.getAirportZuluTime(this.sharedService.currentUser.icao, this.data.departureDateTimeLocal).subscribe((response: Date) => {\r\n if (response)\r\n this.data.departureDateTimeUtc = response;\r\n if (this.data.serviceOn == ServiceOrderAppliedDateTypes.Departure) {\r\n this.data.serviceDateTimeLocal = this.data.departureDateTimeLocal;\r\n this.data.serviceDateTimeUtc = this.data.departureDateTimeUtc;\r\n }\r\n this.setWarningMessage();\r\n });\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onSaveChanges(): void {\r\n this.NgxUiLoader.startLoader(this.dialogLoader);\r\n var data = this.data;\r\n\r\n var newFuelOrder: FuelReq = {\r\n oid: 0,\r\n fboId: this.sharedService.currentUser.fboId,\r\n customerId: 0,\r\n customerInfoByGroupId: 0,\r\n arrivalDateTimeLocal: data.arrivalDateTimeLocal,\r\n departureDateTimeLocal: data.departureDateTimeLocal,\r\n eta: data.arrivalDateTimeLocal,\r\n etd: data.departureDateTimeLocal,\r\n dateCreated: null,\r\n icao: '',\r\n customerAircraftId: data.customerAircraftId,\r\n timeStandard: 'Z',\r\n cancelled: false,\r\n quotedVolume: 0,\r\n quotedPpg: 0,\r\n notes: '',\r\n actualVolume: 0,\r\n actualPpg: 0,\r\n source: 'FBO Custom',\r\n sourceId: 0,\r\n dispatchNotes: '',\r\n archived: false,\r\n email: '',\r\n phoneNumber: '',\r\n fuelOn: data.serviceOn.toString(),\r\n customerName: '',\r\n customerNotes: '',\r\n paymentMethod: '',\r\n timeZone: '',\r\n isConfirmed: false,\r\n tailNumber: '',\r\n fboName: '',\r\n pricingTemplateName: '',\r\n serviceOrder: null,\r\n customer: null,\r\n customerAircraft: null,\r\n showConfirmationButton: false\r\n };\r\n\r\n this.fuelreqsService.add(newFuelOrder).subscribe((response: any) => {\r\n if (response != null) {\r\n newFuelOrder.oid = response.oid;\r\n newFuelOrder.customerName = response.customerName;\r\n newFuelOrder.tailNumber = response.tailNumber;\r\n newFuelOrder.customerId = response.customerId;\r\n\r\n if (data.serviceOrderItems.length > 0) {\r\n data.associatedFuelOrderId = response.oid;\r\n\r\n this.serviceOrderService.createServiceOrder(data).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error creating service order: ' + response.message);\r\n else {\r\n data.serviceOrderItems = response.result.serviceOrderItems;\r\n this.dialogRef.close(newFuelOrder);\r\n }\r\n });\r\n }\r\n else {\r\n this.dialogRef.close(newFuelOrder);\r\n }\r\n }\r\n });\r\n //this.serviceOrderService.createServiceOrder(this.data).subscribe((response: EntityResponseMessage) => {\r\n // this.NgxUiLoader.stopLoader(this.dialogLoader);\r\n // if (!response.success)\r\n // alert('Error creating service order: ' + response.message);\r\n // else\r\n // this.dialogRef.close(response.result);\r\n //});\r\n }\r\n\r\n public displayCustomerName(customer: CustomerInfoByGroup) {\r\n return customer ? customer.company : customer;\r\n }\r\n\r\n public displayTailNumber(customerAircraft: CustomerAircraft) {\r\n return customerAircraft ? customerAircraft.tailNumber : customerAircraft;\r\n }\r\n\r\n public serviceOnChanged() {\r\n if (this.data.serviceOn == ServiceOrderAppliedDateTypes.Arrival && this.data.arrivalDateTimeLocal) {\r\n this.data.serviceDateTimeLocal = this.data.arrivalDateTimeLocal;\r\n this.data.serviceDateTimeUtc = this.data.arrivalDateTimeUtc;\r\n }\r\n else if (this.data.serviceOn == ServiceOrderAppliedDateTypes.Departure && this.data.departureDateTimeLocal) {\r\n this.data.serviceDateTimeLocal = this.data.departureDateTimeLocal;\r\n this.data.serviceDateTimeUtc = this.data.departureDateTimeUtc;\r\n }\r\n }\r\n\r\n public displayAircraft(aircraft) {\r\n return aircraft ? `${aircraft.make} ${aircraft.model}` : aircraft;\r\n }\r\n\r\n private setWarningMessage() {\r\n if (this.data.customerInfoByGroupId == 0) {\r\n this.errorMessage = '*A valid customer selection is required.';\r\n } else {\r\n this.errorMessage = '';\r\n }\r\n if (this.data.customerAircraftId == 0 && this.data.customerAircraft?.tailNumber != null && this.data.customerAircraft?.tailNumber.length > 0) {\r\n this.warningMessage = '*A new tail number will be added with this order.';\r\n } else {\r\n this.warningMessage = '';\r\n }\r\n }\r\n\r\n private loadCustomerInfoByGroupDataSource() {\r\n this.NgxUiLoader.startLoader(this.dialogLoader);\r\n if (this.data.customerAircraft != null && this.data.customerAircraft.oid > 0)\r\n this.loadCustomerInfoByGroupDataSourceByTail();\r\n else {\r\n this.customerInfoByGroupService.getCustomerInfoByGroupListByGroupId(this.data.groupId).subscribe((response: CustomerInfoByGroup[]) => {\r\n this.customerInfoByGroupDataSource = response.sort((n1, n2) => {\r\n if (n1.company > n2.company) {\r\n return 1;\r\n }\r\n if (n1.company < n2.company) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.NgxUiLoader.stopLoader(this.dialogLoader);\r\n });\r\n } \r\n }\r\n\r\n private loadCustomerInfoByGroupDataSourceByTail() {\r\n this.aircraftsService.getCustomersByTail(this.sharedService.currentUser.groupId, this.data.customerAircraft.tailNumber).subscribe((response: CustomerInfoByGroup[]) => {\r\n this.customerInfoByGroupDataSource = response.sort((n1, n2) => {\r\n if (n1.company > n2.company) {\r\n return 1;\r\n }\r\n if (n1.company < n2.company) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.NgxUiLoader.stopLoader(this.dialogLoader);\r\n });\r\n }\r\n\r\n private loadCustomerAircraftsDataSource() {\r\n this.customerAircraftsDataSource = [];\r\n this.NgxUiLoader.startLoader(this.dialogLoader);\r\n\r\n if (this.data.customerInfoByGroup && this.data.customerInfoByGroup.customerId > 0) {\r\n this.loadCustomerAircraftDataSourceByCustomerId();\r\n } else {\r\n this.customerAircraftsService.getAircraftsListByGroupAndFbo(this.sharedService.currentUser.groupId, this.sharedService.currentUser.fboId).subscribe((response: CustomerAircraft[]) => {\r\n this.customerAircraftsDataSource = response.sort((n1, n2) => {\r\n if (n1.tailNumber > n2.tailNumber) {\r\n return 1;\r\n }\r\n if (n1.tailNumber < n2.tailNumber) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.NgxUiLoader.stopLoader(this.dialogLoader);\r\n });\r\n } \r\n }\r\n\r\n private loadCustomerAircraftDataSourceByCustomerId() {\r\n this.customerAircraftsService.getCustomerAircraftsByGroupAndCustomerId(this.data.groupId, this.data.fboId, this.data.customerInfoByGroup.customerId).subscribe((response: CustomerAircraft[]) => {\r\n this.customerAircraftsDataSource = response.sort((n1, n2) => {\r\n if (n1.tailNumber > n2.tailNumber) {\r\n return 1;\r\n }\r\n if (n1.tailNumber < n2.tailNumber) {\r\n return -1;\r\n }\r\n return 0;\r\n });\r\n this.NgxUiLoader.stopLoader(this.dialogLoader);\r\n })\r\n }\r\n\r\n private loadAircraftTypes() {\r\n this.aircraftsService\r\n .getAll()\r\n .subscribe((data: any) => (this.aircraftTypes = data));\r\n }\r\n}\r\n","

New Service Order

\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n {{ appliedDate.text }}\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n

{{errorMessage}}

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

{{warningMessage}}

\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n","import { Component, EventEmitter, Inject, Output, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { ServiceOrderService } from 'src/app/services/serviceorder.service';\r\nimport { CustomerinfobygroupService } from 'src/app/services/customerinfobygroup.service';\r\nimport { CustomeraircraftsService } from 'src/app/services/customeraircrafts.service';\r\n\r\nimport { ServiceOrder } from 'src/app/models/service-order';\r\nimport { CustomerInfoByGroup } from 'src/app/models/customer-info-by-group';\r\nimport { CustomerAircraft } from 'src/app/models/customer-aircraft';\r\nimport { EntityResponseMessage } from 'src/app/models/entity-response-message';\r\nimport { share } from 'rxjs/operators';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\n\r\n@Component({\r\n selector: 'app-service-orders-dialog-order-items',\r\n templateUrl: './service-orders-dialog-order-items.component.html',\r\n})\r\nexport class ServiceOrdersDialogOrderItemsComponent implements OnInit {\r\n public errorMessage: string;\r\n public customerInfoByGroupDataSource: CustomerInfoByGroup[];\r\n public customerAircraftsDataSource: CustomerAircraft[] = [];\r\n public selectedServiceOrder: ServiceOrder;\r\n public isFreemiumAccount: boolean = true;\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ServiceOrder,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private serviceOrderService: ServiceOrderService,\r\n private sharedService: SharedService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.loadServiceOrder();\r\n this.isFreemiumAccount = this.sharedService.currentUser.accountType == AccountType.Freemium;\r\n }\r\n\r\n private loadServiceOrder(): void {\r\n this.serviceOrderService.getServiceOrderById(this.data.oid).subscribe(\r\n (response: EntityResponseMessage) => {\r\n if (!response.success)\r\n this.errorMessage = response.message;\r\n else\r\n this.selectedServiceOrder = response.result;\r\n },\r\n (error: any) => {\r\n this.errorMessage = error;\r\n }\r\n );\r\n }\r\n}\r\n","

New Service Order

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

{{errorMessage}}

\r\n
\r\n
\r\n \r\n
\r\n\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ServiceOrder } from 'src/app/models/service-order';\r\n\r\n@Component({\r\n selector: 'app-service-orders-home',\r\n templateUrl: './service-orders-home.component.html'\r\n})\r\nexport class ServiceOrdersHomeComponent implements OnInit {\r\n public serviceOrdersData: Array;\r\n public currentOrdersData: Array;\r\n public pastOrdersData: Array;\r\n\r\n constructor() {\r\n }\r\n\r\n 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\r\n \r\n
\r\n","import { Component, Input, Output, OnInit, EventEmitter } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { ServiceOrderService } from 'src/app/services/serviceorder.service';\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\n\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { CustomerAircraftsEditComponent } from '../../customer-aircrafts/customer-aircrafts-edit/customer-aircrafts-edit.component';\r\nimport { CustomersEditDialogComponent } from '../../customers/customers-edit-dialog/customers-edit-dialog.component';\r\n\r\nimport { ServiceOrder } from 'src/app/models/service-order';\r\nimport { ServiceOrderItem } from 'src/app/models/service-order-item';\r\nimport { EntityResponseMessage } from 'src/app/models/entity-response-message';\r\nimport { CustomerInfoByGroup } from 'src/app/models/customer-info-by-group';\r\n\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-service-orders-item-list',\r\n templateUrl: './service-orders-item-list.component.html'\r\n})\r\nexport class ServiceOrdersItemListComponent implements OnInit {\r\n @Input() serviceOrder: ServiceOrder;\r\n @Input() showClose: boolean = true;\r\n @Input() isFreemiumAccount: boolean = true;\r\n @Output() serviceOrderItemsChanged: EventEmitter = new EventEmitter();\r\n @Output() closeClicked: EventEmitter = new EventEmitter();\r\n\r\n public customerInfoByGroup: CustomerInfoByGroup;\r\n public newServiceOrderItem: ServiceOrderItem;\r\n\r\n constructor(\r\n private serviceOrderService: ServiceOrderService,\r\n private sharedService: SharedService,\r\n private aircraftsService: AircraftsService,\r\n private deleteServiceOrderItemDialog: MatDialog,\r\n private customerDetailsDialog: MatDialog,\r\n private aircraftDetailsDialog: MatDialog) {\r\n }\r\n\r\n ngOnInit() {\r\n this.resetNewServiceOrderItem();\r\n if (this.serviceOrder.serviceOrderItems == null)\r\n this.loadServiceOrderItems();\r\n }\r\n\r\n public addServiceOrderItemClicked() {\r\n\r\n this.serviceOrderService.createServiceOrderItem(this.newServiceOrderItem).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error creating service order item: ' + response.message);\r\n this.serviceOrder.serviceOrderItems.push(response.result);\r\n this.serviceOrderItemsChanged.emit(this.serviceOrder);\r\n this.resetNewServiceOrderItem();\r\n });\r\n }\r\n\r\n public deleteServiceOrderItemClicked(serviceOrderItem: ServiceOrderItem) {\r\n const dialogRef = this.deleteServiceOrderItemDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'service order item', item: serviceOrderItem, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.deleteOrderItem(serviceOrderItem);\r\n });\r\n }\r\n\r\n public serviceOrderItemEdited(serviceOrderItem: ServiceOrderItem) {\r\n this.saveServiceOrderItem(serviceOrderItem);\r\n }\r\n\r\n public serviceItemToggleChanged(event: any) {\r\n event.option._value.isCompleted = event.option._selected;\r\n if (event.option._value.isCompleted) {\r\n event.option._value.completionDateTimeUtc = moment(new Date().toUTCString()).format('YYYY-MM-DD HH:mm');\r\n event.option._value.completedByUserId = this.sharedService.currentUser.oid;\r\n event.option._value.completedByName = this.sharedService.currentUser.firstName + ' ' + this.sharedService.currentUser.lastName;\r\n }\r\n this.saveServiceOrderItem(event.option._value);\r\n this.serviceOrderItemsChanged.emit(this.serviceOrder);\r\n }\r\n\r\n public viewCustomerDetailsClicked() {\r\n if(this.isFreemiumAccount) return;\r\n const dialogRef = this.customerDetailsDialog.open(\r\n CustomersEditDialogComponent,\r\n {\r\n data: {\r\n customerInfoByGroupId: this.serviceOrder.customerInfoByGroup.oid\r\n },\r\n width: '95%',\r\n maxWidth: '95%'\r\n }\r\n );\r\n }\r\n\r\n public viewAircraftDetailsClicked() {\r\n if(this.isFreemiumAccount) return;\r\n const dialogRef = this.aircraftDetailsDialog.open(\r\n CustomerAircraftsEditComponent,\r\n {\r\n data: {\r\n disableDelete: true,\r\n oid: this.serviceOrder.customerAircraftId,\r\n customerId: this.serviceOrder.customerInfoByGroup.customerId\r\n },\r\n width: '450px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n this.aircraftsService\r\n .getAircraftSizes()\r\n .subscribe((data: any) => {\r\n if (data) {\r\n //Do nothing - no adjustment needed\r\n }\r\n });\r\n });\r\n }\r\n\r\n public onCloseClicked() {\r\n this.closeClicked.emit(true);\r\n }\r\n\r\n private loadServiceOrderItems() {\r\n this.serviceOrderService.getServiceOrderItems(this.serviceOrder.oid).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error loading service order items: ' + response.message);\r\n else\r\n this.serviceOrder.serviceOrderItems = response.result;\r\n });\r\n }\r\n\r\n private resetNewServiceOrderItem() {\r\n //this.newServiceOrderItem = { oid: 0, serviceName: '', serviceOrderId: this.serviceOrder.oid, quantity: 1, isCompleted: false, completionDateTimeUtc: null };\r\n }\r\n\r\n private saveServiceOrderItem(serviceOrderItem: ServiceOrderItem) {\r\n this.serviceOrderService.updateServiceOrderItem(serviceOrderItem).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error saving service order item: ' + response.message);\r\n else {\r\n this.serviceOrderItemsChanged.emit(this.serviceOrder);\r\n }\r\n });\r\n }\r\n\r\n private deleteOrderItem(serviceOrderItem: ServiceOrderItem) {\r\n this.serviceOrderService.deleteServiceOrderItem(serviceOrderItem.oid).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error deleting service order item: ' + response.message);\r\n else {\r\n this.serviceOrder.serviceOrderItems.splice(this.serviceOrder.serviceOrderItems.indexOf(serviceOrderItem), 1);\r\n this.serviceOrderItemsChanged.emit(this.serviceOrder);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ serviceOrder.customerInfoByGroup?.company }}\r\n
\r\n
\r\n \r\n open_in_new\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ serviceOrder.customerAircraft?.tailNumber }}\r\n
\r\n
\r\n \r\n open_in_new\r\n \r\n
\r\n
\r\n
\r\n {{\r\n serviceOrder.arrivalDateTimeLocal\r\n | date : \"MMM d, yyyy, HH:mm\"\r\n }}\r\n (L)\r\n
\r\n
\r\n {{\r\n serviceOrder.departureDateTimeLocal\r\n | date : \"MMM d, yyyy, HH:mm\"\r\n }}\r\n (L)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ item.serviceName }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Add\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig } from '@angular/material/dialog';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { ServiceOrderService } from 'src/app/services/serviceorder.service';\r\n\r\nimport { ServiceOrdersDialogNewComponent } from '../service-orders-dialog-new/service-orders-dialog-new.component';\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\n\r\nimport { ServiceOrder } from 'src/app/models/service-order';\r\nimport { EntityResponseMessage } from 'src/app/models/entity-response-message';\r\nimport { MatSidenav } from '@angular/material/sidenav';\r\n\r\nimport * as moment from 'moment';\r\nimport { ServiceOrderAppliedDateTypes } from '../../../enums/service-order-applied-date-types';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\nimport { MatSelectionList } from '@angular/material/list';\r\n\r\n@Component({\r\n selector: 'app-service-orders-list',\r\n templateUrl: './service-orders-list.component.html'\r\n})\r\nexport class ServiceOrdersListComponent implements OnInit {\r\n @Input() serviceOrdersData: Array;\r\n @Input() allowAddingNew: boolean = true;\r\n\r\n @ViewChild('serviceOrderDrawer') serviceOrderDrawer: MatSidenav;\r\n @ViewChild('incompletedServiceOrders') selectionList: MatSelectionList;\r\n\r\n public selectedServiceOrder: ServiceOrder;\r\n public inCompleteServiceOrders: Array;\r\n public completeServiceOrders: Array;\r\n public globalFilter: string = '';\r\n public filterStartDate: Date = new Date(moment().add(-1, 'M').format('YYYY-MM-DD'));\r\n public filterEndDate: Date = new Date(moment().add(1, 'M').format('YYYY-MM-DD'));\r\n public sortType: string = 'arrivalDateTimeLocal';\r\n public isFreemiumAccount: boolean = true;\r\n\r\n constructor(\r\n private serviceOrderService: ServiceOrderService,\r\n private sharedService: SharedService,\r\n private newServiceOrderDialog: MatDialog,\r\n private deleteServiceOrderDialog: MatDialog) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.serviceOrdersData)\r\n this.loadServiceOrders();\r\n else\r\n this.arrangeServiceOrders();\r\n\r\n this.isFreemiumAccount = this.sharedService.currentUser.accountType == AccountType.Freemium;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.selectionList?.deselectAll();\r\n }\r\n public addServiceOrderClicked() {\r\n var newServiceOrder: ServiceOrder = {\r\n oid: 0,\r\n fboId: this.sharedService.currentUser.fboId,\r\n serviceOrderItems: [],\r\n arrivalDateTimeUtc: null,\r\n arrivalDateTimeLocal: null,\r\n departureDateTimeUtc: null,\r\n departureDateTimeLocal: null,\r\n groupId: this.sharedService.currentUser.groupId,\r\n customerInfoByGroupId: 0,\r\n customerAircraftId: 0,\r\n associatedFuelOrderId: 0,\r\n serviceOn: ServiceOrderAppliedDateTypes.Arrival,\r\n numberOfCompletedItems: 0,\r\n isCompleted: false,\r\n customerInfoByGroup: null,\r\n customerAircraft: null,\r\n numberOfTotalServices: 0,\r\n isActive: false\r\n };\r\n const config: MatDialogConfig = {\r\n disableClose: true,\r\n data: newServiceOrder,\r\n autoFocus: false,\r\n maxWidth: '510px'\r\n };\r\n\r\n const dialogRef = this.newServiceOrderDialog.open(ServiceOrdersDialogNewComponent, config);\r\n\r\n dialogRef.afterClosed().subscribe((result: ServiceOrder) => {\r\n if (!result)\r\n return;\r\n this.serviceOrdersData.push(result);\r\n this.arrangeServiceOrders();\r\n this.serviceOrderClicked(result);\r\n });\r\n }\r\n\r\n public serviceOrderClicked(serviceOrder: ServiceOrder) {\r\n this.selectedServiceOrder = serviceOrder;\r\n this.serviceOrderDrawer.open();\r\n }\r\n\r\n public serviceOrderItemsChanged(serviceOrder: ServiceOrder) {\r\n this.calculateCompletions(serviceOrder);\r\n this.arrangeServiceOrders();\r\n this.sharedService.emitChange('service-orders-changed');\r\n }\r\n\r\n public deleteServiceOrderClicked(serviceOrder: ServiceOrder) {\r\n const dialogRef = this.deleteServiceOrderDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'service order', item: serviceOrder, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.deleteOrder(serviceOrder);\r\n });\r\n }\r\n\r\n public serviceOrderToggleChanged(event: any) {\r\n if(this.isFreemiumAccount){\r\n this.selectionList.deselectAll();\r\n return;\r\n }\r\n var serviceOrder: ServiceOrder = event.option._value;\r\n\r\n for (const item of serviceOrder.serviceOrderItems) {\r\n item.isCompleted = event.option._selected;\r\n if (item.isCompleted) {\r\n item.completionDateTimeUtc = moment(new Date().toUTCString()).toDate();\r\n item.completedByUserId = this.sharedService.currentUser.oid;\r\n item.completedByName = this.sharedService.currentUser.firstName + ' ' + this.sharedService.currentUser.lastName;\r\n }\r\n }\r\n this.calculateCompletions(serviceOrder);\r\n this.arrangeServiceOrders();\r\n this.saveOrder(serviceOrder);\r\n };\r\n\r\n public filterChanged(filterValue: string) {\r\n this.globalFilter = filterValue;\r\n this.arrangeServiceOrders();\r\n }\r\n\r\n public serviceOrderItemsCloseClicked() {\r\n this.serviceOrderDrawer.close();\r\n this.selectedServiceOrder = null;\r\n }\r\n\r\n public applyDateFilterChange() {\r\n this.loadServiceOrders();\r\n }\r\n\r\n public sortTypeChanged() {\r\n this.sortOrders();\r\n }\r\n private loadServiceOrders() {\r\n this.serviceOrdersData = null;\r\n this.serviceOrderService.getServiceOrdersForFbo(this.sharedService.currentUser.fboId, this.filterStartDate, this.filterEndDate).subscribe((response: EntityResponseMessage>) => {\r\n if (!response.success)\r\n alert('Error getting service orders: ' + response.message);\r\n else {\r\n this.serviceOrdersData = response.result;\r\n this.arrangeServiceOrders();\r\n }\r\n });\r\n }\r\n\r\n private calculateCompletions(serviceOrder: ServiceOrder) {\r\n if(serviceOrder.serviceOrderItems.length == 0)\r\n {\r\n serviceOrder.numberOfCompletedItems = 0;\r\n serviceOrder.isCompleted = !serviceOrder.isCompleted;\r\n return;\r\n }\r\n serviceOrder.numberOfCompletedItems = serviceOrder.serviceOrderItems.filter(x => x.isCompleted).length;\r\n serviceOrder.isCompleted = serviceOrder.numberOfCompletedItems == serviceOrder.serviceOrderItems.length;\r\n }\r\n\r\n private arrangeServiceOrders() {\r\n var filter = this.globalFilter.toUpperCase();\r\n this.inCompleteServiceOrders = this.serviceOrdersData.filter(x =>\r\n (!x.isCompleted || x.serviceOrderItems == null || x.serviceOrderItems.filter(item => item.isCompleted).length != x.serviceOrderItems.length)\r\n && (filter == '' || x.customerAircraft?.tailNumber?.toUpperCase().indexOf(filter) > -1 || x.customerInfoByGroup?.company?.toUpperCase().indexOf(filter) > -1)\r\n );\r\n\r\n this.completeServiceOrders = this.serviceOrdersData.filter(x =>\r\n (x.isCompleted ||x.serviceOrderItems == null || x.serviceOrderItems.length > 0 && x.serviceOrderItems.filter(item => item.isCompleted).length == x.serviceOrderItems.length)\r\n && (filter == '' || x.customerAircraft?.tailNumber?.toUpperCase().indexOf(filter) > -1 || x.customerInfoByGroup?.company?.toUpperCase().indexOf(filter) > -1)\r\n );\r\n\r\n this.sortOrders();\r\n }\r\n\r\n private saveOrder(serviceOrder: ServiceOrder) {\r\n this.serviceOrderService.updateServiceOrder(serviceOrder).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error saving service order: ' + response.message);\r\n this.sharedService.emitChange('service-orders-changed');\r\n });\r\n }\r\n\r\n private deleteOrder(serviceOrder: ServiceOrder) {\r\n this.serviceOrderService.deleteServiceOrder(serviceOrder.oid).subscribe((response: EntityResponseMessage) => {\r\n if (!response.success)\r\n alert('Error deleting service order: ' + response.message);\r\n else {\r\n this.serviceOrdersData.splice(this.serviceOrdersData.indexOf(serviceOrder), 1);\r\n this.arrangeServiceOrders();\r\n this.sharedService.emitChange('service-orders-changed');\r\n }\r\n });\r\n }\r\n\r\n private sortOrders() {\r\n this.customSort(this.inCompleteServiceOrders);\r\n this.customSort(this.completeServiceOrders);\r\n }\r\n\r\n private customSort(arr: ServiceOrder[]): void{\r\n arr.sort((a, b) => {\r\n if(this.sortType == \"customerInfoByGroup.company\")\r\n return b.customerInfoByGroup.company.localeCompare(a.customerInfoByGroup.company);\r\n\r\n return b[this.sortType].localeCompare(a[this.sortType])\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n \r\n
\r\n \r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n ETA\r\n ETD\r\n Company\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n Add Order\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n No service orders found.\r\n You can\r\n add one to begin.\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Customer:\r\n {{\r\n order.customerInfoByGroup\r\n .company\r\n }}\r\n Tail:\r\n \r\n {{\r\n order.customerAircraft\r\n .tailNumber\r\n }}\r\n
\r\n
\r\n ETA:\r\n \r\n {{\r\n order.arrivalDateTimeLocal\r\n | date\r\n : \"MMM d, yyyy, @ HH:mm\"\r\n }}\r\n (L)\r\n ETD:\r\n \r\n {{\r\n order.departureDateTimeLocal\r\n | date\r\n : \"MMM d, yyyy, @ HH:mm\"\r\n }}\r\n (L)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Services:\r\n {{\r\n order.numberOfCompletedItems\r\n }}\r\n of\r\n {{\r\n order.serviceOrderItems.length\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Delete\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n 0\"\r\n class=\"mt-2\"\r\n >\r\n \r\n \r\n \r\n \r\n Completed ({{\r\n completeServiceOrders.length\r\n }})\r\n \r\n \r\n Service orders that have been completed.\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n Customer:\r\n {{\r\n order\r\n .customerInfoByGroup\r\n .company\r\n }}\r\n Tail:\r\n \r\n {{\r\n order\r\n .customerAircraft\r\n .tailNumber\r\n }}\r\n
\r\n
\r\n ETA:\r\n \r\n {{\r\n order.arrivalDateTimeLocal\r\n | date\r\n : \"MMM d, yyyy, @ HH:mm\"\r\n }}\r\n (L)\r\n ETD:\r\n \r\n {{\r\n order.departureDateTimeLocal\r\n | date\r\n : \"MMM d, yyyy, @ HH:mm\"\r\n }}\r\n (L)\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n Services:\r\n {{\r\n order.numberOfCompletedItems\r\n }}\r\n of\r\n {{\r\n order\r\n .serviceOrderItems\r\n .length\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n Delete\r\n \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\n\r\n@Component({\r\n selector: 'app-services-and-fees-home',\r\n templateUrl: './services-and-fees-home.component.html',\r\n styleUrls: ['./services-and-fees-home.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ServicesAndFeesHomeComponent implements OnInit {\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n keyboard_arrow_right\r\n keyboard_arrow_down\r\n Ramp Fee & Avoidance\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n keyboard_arrow_right\r\n keyboard_arrow_down\r\n FBO Services Select or deselect the services that your facility offers\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 { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n name: string;\r\n }\r\n@Component({\r\n selector: 'app-item-input',\r\n templateUrl: './item-input.component.html',\r\n styleUrls: ['./item-input.component.scss']\r\n})\r\nexport class ItemInputComponent {\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData,\r\n ) {}\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","

New Category

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n save\r\n Save Category\r\n \r\n \r\n
\r\n","import { Component, OnInit, Input, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { FbosServicesAndFeesResponse, ServiceTypeResponse, ServicesAndFees, ServicesAndFeesResponse } from 'src/app/models/services-and-fees/services-and-fees';\r\nimport { ServicesAndFeesService } from 'src/app/services/servicesandfees.service';\r\nimport { DeleteConfirmationComponent } from 'src/app/shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { ItemInputComponent } from './item-input/item-input.component';\r\nimport { DatePipe } from '@angular/common';\r\nimport { ServiceTypeService } from 'src/app/services/servicetypes.service';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\nimport { SnackBarService } from 'src/app/services/utils/snackBar.service';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\ninterface ServicesAndFeesGridItem extends ServicesAndFeesResponse{\r\n isEditMode : boolean,\r\n isNewItem: boolean,\r\n editedValue: string,\r\n isSaving: boolean\r\n}\r\n@Component({\r\n selector: 'app-services-and-fees',\r\n templateUrl: './services-and-fees.component.html',\r\n styleUrls: ['./services-and-fees.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class ServicesAndFeesComponent implements OnInit {\r\n @Input() public fboId: number|null = null;\r\n servicesAndFeesGridDisplay: FbosServicesAndFeesResponse[];\r\n chartName = \"servicesAndFees\";\r\n\r\n constructor(\r\n private servicesAndFeesService: ServicesAndFeesService,\r\n private serviceTypeService: ServiceTypeService,\r\n private sharedService: SharedService,\r\n private dialog: MatDialog,\r\n private snackBar: SnackBarService,\r\n private datePipe : DatePipe,\r\n private ngxLoader: NgxUiLoaderService\r\n ) { }\r\n\r\n async ngOnInit() {\r\n this.ngxLoader.startLoader(this.chartName);\r\n this.servicesAndFeesGridDisplay = await this.servicesAndFeesService.getFboServicesAndFees(this.sharedService.currentUser.fboId).toPromise();\r\n this.ngxLoader.stopLoader(this.chartName);\r\n }\r\n\r\n createNewItem(serviceType: ServiceTypeResponse): void {\r\n let category = this.servicesAndFeesGridDisplay.find(elem=> elem.serviceType.name == serviceType.name);\r\n\r\n let newItem: ServicesAndFeesGridItem = {\r\n oid : 0,\r\n isNewItem : true,\r\n handlerId : category.servicesAndFees[0]?.handlerId,\r\n serviceOfferedId : category.servicesAndFees[0]?.serviceOfferedId,\r\n isCustom : true,\r\n serviceTypeId : serviceType.oid,\r\n service : '',\r\n isActive : true,\r\n isEditMode : true,\r\n editedValue : '',\r\n createdDate: new Date(),\r\n createdByUser: '',\r\n createdByUserId: this.sharedService.currentUser.oid,\r\n isSaving: false\r\n };\r\n\r\n\r\n category.servicesAndFees.push(newItem);\r\n }\r\n saveItem(serviceAndfee: ServicesAndFeesGridItem): void {\r\n if(serviceAndfee.isNewItem)\r\n this.add(serviceAndfee);\r\n else\r\n this.update(serviceAndfee);\r\n }\r\n add(serviceAndfee: ServicesAndFeesGridItem): void {\r\n serviceAndfee.service = serviceAndfee.editedValue;\r\n\r\n this.servicesAndFeesService.add(this.sharedService.currentUser.fboId, serviceAndfee)\r\n .subscribe(response => {\r\n serviceAndfee.oid = response.oid;\r\n serviceAndfee.isNewItem = false;\r\n serviceAndfee.createdByUser = this.sharedService.currentUser.username;\r\n this.toogleEditModel(serviceAndfee);\r\n }, error => {\r\n this.snackBar.showErrorSnackBar( `There was an error saving ${serviceAndfee.service} ${serviceAndfee.service} please try again`);\r\n console.log(error);\r\n this.toogleEditModel(serviceAndfee);\r\n });\r\n }\r\n\r\n update(serviceAndfee : ServicesAndFeesGridItem): void {\r\n let updatedItem: ServicesAndFees = Object.assign({}, serviceAndfee);\r\n\r\n let previousNameBackup = serviceAndfee.service;\r\n updatedItem.service = serviceAndfee.editedValue;\r\n\r\n this.servicesAndFeesService.update(this.sharedService.currentUser.fboId,updatedItem).subscribe(response => {\r\n serviceAndfee.service = serviceAndfee.editedValue;\r\n this.toogleEditModel(serviceAndfee);\r\n this.snackBar.showSuccessSnackBar( `Service ${serviceAndfee.service} was updated successfully`);\r\n }, error => {\r\n serviceAndfee.editedValue = previousNameBackup;\r\n serviceAndfee.service = previousNameBackup;\r\n this.snackBar.showErrorSnackBar( `There was an error updating the service please try again`);\r\n console.log(error);\r\n this.toogleEditModel(serviceAndfee);\r\n });\r\n }\r\n updateActiveFlag(serviceAndfee : ServicesAndFeesGridItem): void {\r\n if(serviceAndfee.isSaving) return;\r\n serviceAndfee.isSaving = true;\r\n serviceAndfee.isActive = !serviceAndfee.isActive;\r\n let updatedItem: ServicesAndFees = {\r\n oid: serviceAndfee.oid,\r\n handlerId: serviceAndfee.handlerId,\r\n serviceOfferedId: serviceAndfee.serviceOfferedId,\r\n service: serviceAndfee.service,\r\n serviceTypeId: serviceAndfee.serviceTypeId,\r\n isActive: serviceAndfee.isActive,\r\n createdDate: new Date(),\r\n createdByUserId: this.sharedService.currentUser.oid,\r\n }\r\n this.servicesAndFeesService.update(this.sharedService.currentUser.fboId,updatedItem).subscribe(response => {\r\n serviceAndfee.oid = response.oid;\r\n serviceAndfee.isSaving = false;\r\n this.snackBar.showSuccessSnackBar( `Service ${serviceAndfee.service} was updated successfully`);\r\n }, error => {\r\n this.snackBar.showErrorSnackBar( `There was an error updating the service please try again`);\r\n serviceAndfee.isActive = !serviceAndfee.isActive;\r\n serviceAndfee.isSaving = false;\r\n console.log(error);\r\n\r\n });\r\n }\r\n toogleEditModel(item: ServicesAndFeesGridItem,itemList: ServicesAndFeesGridItem[] = []): void {\r\n item.editedValue = item.service;\r\n if(item.isNewItem)\r\n itemList.pop();\r\n else\r\n item.isEditMode = !item.isEditMode;\r\n }\r\n deleteItem(serviceAndfee: ServicesAndFeesGridItem, serviceTypeName: string = null): void {\r\n const dialogRef = this.dialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'Category', item: serviceAndfee, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((serviceAndfee) => {\r\n if (!serviceAndfee) {\r\n return;\r\n }\r\n this.servicesAndFeesService.remove(serviceAndfee.item.oid).subscribe(response => {\r\n let category = this.servicesAndFeesGridDisplay.find(elem=> elem.serviceType.name == serviceTypeName);\r\n\r\n category.servicesAndFees = category.servicesAndFees.filter(item => item.oid != serviceAndfee.item.oid);\r\n\r\n this.toogleEditModel(serviceAndfee);\r\n this.snackBar.showSuccessSnackBar(\"Service deleted successfully\");\r\n }, error => {\r\n this.snackBar.showErrorSnackBar( `There was an error deleting ${serviceAndfee.item.serviceType} ${serviceAndfee.item.service} please try again`);\r\n console.log(error);\r\n });\r\n });\r\n }\r\n deleteCategory(serviceType: ServiceTypeResponse): void{\r\n const dialogRef = this.dialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'Category', item: serviceType, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((serviceType) => {\r\n if (!serviceType) {\r\n return;\r\n }\r\n this.serviceTypeService.remove(serviceType.item.oid).subscribe(response => {\r\n this.servicesAndFeesGridDisplay = this.servicesAndFeesGridDisplay.filter(elem=> elem.serviceType.oid != serviceType.item.oid);\r\n this.snackBar.showSuccessSnackBar(\"Category and services deleted successfully\");\r\n }, error => {\r\n this.snackBar.showErrorSnackBar( `There was an error deleting ${serviceType.item.name} please try again`);\r\n console.log(error);\r\n });\r\n });\r\n }\r\n openCategoryDialog(serviceType: ServiceTypeResponse = null): void {\r\n let isEditMode = serviceType != null;\r\n if(serviceType == null){\r\n serviceType = {\r\n oid: 0,\r\n name: \"\",\r\n isCustom : true,\r\n createdDate: new Date(),\r\n createdByName: \"\",\r\n createdByUserId: this.sharedService.currentUser.oid\r\n };\r\n }\r\n const dialogRef = this.dialog.open(ItemInputComponent, {data: {name: serviceType.name}});\r\n\r\n dialogRef.afterClosed().subscribe(result => {\r\n var previousName = serviceType.name;\r\n serviceType.name = result.name;\r\n if(isEditMode)\r\n this.updateCategory(serviceType,previousName);\r\n else\r\n this.addCategory(serviceType);\r\n\r\n });\r\n }\r\n private updateCategory(serviceType: ServiceTypeResponse, previousName: string): void{\r\n this.serviceTypeService.update(serviceType.oid, serviceType)\r\n .subscribe(response => {\r\n serviceType.oid = response.oid;\r\n this.snackBar.showSuccessSnackBar( `saved Successfully`);\r\n }, error => {\r\n serviceType.name = previousName;\r\n this.snackBar.showErrorSnackBar( `There was an error saving ${serviceType.name} please try again`);\r\n console.log(error);\r\n });\r\n }\r\n private addCategory(serviceType: ServiceTypeResponse): void{\r\n this.serviceTypeService.add(this.sharedService.currentUser.fboId, serviceType)\r\n .subscribe(response => {\r\n serviceType.oid = response.oid;\r\n this.servicesAndFeesGridDisplay.push({\r\n serviceType: serviceType,\r\n servicesAndFees: []\r\n });\r\n this.snackBar.showSuccessSnackBar( `saved Successfully`);\r\n }, error => {\r\n this.snackBar.showErrorSnackBar( `There was an error saving ${serviceType.name} please try again`);\r\n console.log(error);\r\n });\r\n }\r\n getInfoTooltipText(serviceAndFees: ServicesAndFeesResponse): string{\r\n if (!serviceAndFees.isCustom)\r\n return `Source: FuelerLinx Database`;\r\n else\r\n return `Source: ${serviceAndFees.createdByUser} - ${this.datePipe.transform(serviceAndFees.createdDate,'MM/dd/yyyy')}`;\r\n }\r\n isAvailableForCurrentUser(): boolean {\r\n return this.sharedService.currentUser.accountType == AccountType.Premium;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n keyboard_arrow_right\r\n keyboard_arrow_down\r\n {{ service.serviceType.name }}\r\n \r\n \r\n \r\n edit\r\n \r\n \r\n delete\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n Save\r\n \r\n \r\n Cancel\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{ val.service }}\r\n
\r\n
\r\n edit\r\n delete\r\n info\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Create New Item\r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n Create New Category\r\n \r\n
\r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\n// Services\nimport { UserService } from '../../../services/user.service';\nimport { SharedService } from '../../../layouts/shared-service';\r\n\n// Interfaces\nexport interface NewUserDialogData {\n firstName: string;\n lastName: string;\n username: string;\n password: string;\n role: number;\n fboId: number;\n groupId: number;\n newPassword: string;\n confirmPassword: string;\n}\n\n@Component({\n selector: 'app-users-dialog-new-user',\n styleUrls: ['./users-dialog-new-user.component.scss'],\n templateUrl: './users-dialog-new-user.component.html',\n})\nexport class UsersDialogNewUserComponent {\n // Public Members\n public availableroles: any[];\n public emailExists = false;\n\n constructor(\n public dialogRef: MatDialogRef,\n @Inject(MAT_DIALOG_DATA) public data: NewUserDialogData,\n private userService: UserService,\n private sharedService: SharedService\n ) {\n this.loadAvailableRoles();\n }\n\n // Public Methods\n public onCancelClick(): void {\n this.dialogRef.close();\n }\n\n public onSaveClick(): void {\n this.emailExists = false;\n this.userService.checkemailexists(this.data.username).subscribe(\n (data: any) => {\n this.dialogRef.close(this.data);\n },\n (err: any) => {\n console.log(err);\n if (err === 'Conflict') {\n this.emailExists = true;\n }\n }\n );\n }\n\n // Private Methods\n private loadAvailableRoles() {\n this.userService.getRoles().subscribe((data: any) => {\n let supportedRoleValues = [4];\n this.availableroles = [];\n if (this.data.fboId > 0) {\n supportedRoleValues = [1, 4, 5];\n } else if (this.data.groupId > 0) {\n supportedRoleValues = [2];\n }\n\n if (this.sharedService.currentUser.role === 3) {\n supportedRoleValues.push(7);\r\n }\n\n for (const role of data) {\n if (supportedRoleValues.indexOf(role.value) > -1) {\n this.availableroles.push(role);\n }\n }\n if (this.data.role > 0) {\n return;\n }\n this.data.role = this.availableroles[0].value;\n });\n }\n}\n","

New User

\r\n
\r\n
\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 \r\n
\r\n
\r\n Please enter a valid email address.\r\n
\r\n
\r\n Email address is already in use, please select another email 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 0 &&\r\n data.newPassword &&\r\n data.newPassword.length > 0 &&\r\n data.newPassword != data.confirmPassword\r\n \"\r\n class=\"text-danger\"\r\n >\r\n Passwords must match\r\n
\r\n\r\n
\r\n \r\n Add New User\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n// Services\r\nimport { UserService } from '../../../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-users-edit',\r\n styleUrls: ['./users-edit.component.scss'],\r\n templateUrl: './users-edit.component.html',\r\n})\r\nexport class UsersEditComponent implements OnInit {\r\n @Output() saveClicked = new EventEmitter();\r\n @Output() cancelClicked = new EventEmitter();\r\n @Input() userInfo: any;\r\n @Input() fboInfo: any;\r\n @Input() groupInfo: any;\r\n\r\n // Public Members\r\n public availableroles: any[];\r\n\r\n // Private Members\r\n private requiresRouting = false;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n private router: Router,\r\n private userService: UserService\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (this.userInfo) {\r\n this.loadAvailableRoles();\r\n } else {\r\n const id = this.route.snapshot.paramMap.get('id');\r\n this.requiresRouting = true;\r\n this.userService.get({ oid: id }).subscribe((data: any) => {\r\n this.userInfo = data;\r\n this.loadAvailableRoles();\r\n });\r\n }\r\n }\r\n\r\n public saveEdit() {\r\n this.userService.update(this.userInfo).subscribe(() => {\r\n if (this.userInfo.newPassword && this.userInfo.newPassword !== '') {\r\n this.userService\r\n .updatePassword({\r\n newPassword: this.userInfo.newPassword,\r\n user: this.userInfo,\r\n })\r\n .subscribe((newPass: any) => {\r\n this.userInfo.password = newPass;\r\n });\r\n }\r\n });\r\n this.saveClicked.emit(this.userInfo);\r\n }\r\n\r\n public cancelEdit() {\r\n if (this.requiresRouting) {\r\n this.router.navigate(['/default-layout/fbos/']);\r\n } else {\r\n this.cancelClicked.emit();\r\n }\r\n }\r\n\r\n // Private Methods\r\n private loadAvailableRoles() {\r\n this.userService.getRoles().subscribe((data: any) => {\r\n let supportedRoleValues = [4];\r\n this.availableroles = [];\r\n if (this.userInfo.fboId > 0) {\r\n supportedRoleValues = [1, 4, 5];\r\n } else if (this.userInfo.groupId > 0) {\r\n supportedRoleValues = [2];\r\n }\r\n for (const role of data) {\r\n if (supportedRoleValues.indexOf(role.value) > -1) {\r\n this.availableroles.push(role);\r\n }\r\n }\r\n if (this.userInfo.role > 0) {\r\n return;\r\n }\r\n this.userInfo.role = this.availableroles[0].Value;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
Login Information
\r\n
\r\n
\r\n
\r\n \r\n \r\n \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 enter a valid email address.\r\n
\r\n
\r\n
\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 \r\n save\r\n Save Changes\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n// Services\r\nimport { UserService } from '../../../services/user.service';\r\nimport { DeleteConfirmationComponent } from '../../../shared/components/delete-confirmation/delete-confirmation.component';\r\nimport { UsersDialogNewUserComponent } from '../users-dialog-new-user/users-dialog-new-user.component';\r\nimport { Subscribable, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-users-grid',\r\n styleUrls: ['./users-grid.component.scss'],\r\n templateUrl: './users-grid.component.html',\r\n})\r\nexport class UsersGridComponent implements OnInit {\r\n @Output() userDeleted = new EventEmitter();\r\n @Output() newUserClicked = new EventEmitter();\r\n @Output() editUserClicked = new EventEmitter();\r\n @Input() usersData: Array;\r\n @Input() fboInfo: any;\r\n @Input() groupInfo: any;\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n public usersDataSource: MatTableDataSource = null;\r\n public displayedColumns: string[] = [\r\n 'firstName',\r\n 'lastName',\r\n 'username',\r\n 'roleDescription',\r\n 'copyAlerts',\r\n 'copyOrders',\r\n 'delete',\r\n ];\r\n public resultsLength = 0;\r\n sortChangeSubscription: Subscription;\r\n constructor(\r\n private userService: UserService,\r\n public newUserDialog: MatDialog,\r\n public deleteUserDialog: MatDialog\r\n ) {}\r\n\r\n ngOnInit() {\r\n if (!this.usersData) {\r\n return;\r\n }\r\n this.sortChangeSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.usersDataSource = new MatTableDataSource(this.usersData);\r\n this.usersDataSource.sort = this.sort;\r\n this.usersDataSource.paginator = this.paginator;\r\n this.resultsLength = this.usersData.length;\r\n }\r\n ngOnDestroy() {\r\n this.sortChangeSubscription?.unsubscribe();\r\n }\r\n // Public Methods\r\n public deleteRecord(record) {\r\n const dialogRef = this.deleteUserDialog.open(\r\n DeleteConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: { description: 'user', item: record, includeThis: true },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n const deleteIndex = this.usersData.indexOf(record);\r\n this.userService.remove(record).subscribe(() => {\r\n const userArray = this.usersDataSource.data;\r\n userArray.splice(deleteIndex, 1);\r\n this.usersDataSource.data = userArray;\r\n });\r\n this.userDeleted.emit(record);\r\n });\r\n }\r\n\r\n public UpdateCopyAlertsValue(value) {\r\n if (value.copyAlerts) {\r\n value.copyAlerts = !value.copyAlerts;\r\n } else {\r\n value.copyAlerts = true;\r\n }\r\n\r\n if (this.fboInfo == null) {\r\n value.GroupId = this.groupInfo.oid;\r\n } else {\r\n value.GroupId = this.fboInfo.groupId;\r\n }\r\n this.userService.update(value).subscribe((data: any) => {});\r\n }\r\n\r\n public UpdateCopyOrdersValue(value) {\r\n if (value.copyOrders) {\r\n value.copyOrders = !value.copyOrders;\r\n } else {\r\n value.copyOrders = true;\r\n }\r\n\r\n if (this.fboInfo == null) {\r\n value.GroupId = this.groupInfo.oid;\r\n } else {\r\n value.GroupId = this.fboInfo.groupId;\r\n }\r\n this.userService.update(value).subscribe((data: any) => {});\r\n }\r\n\r\n public editRecord(record, $event) {\r\n if ($event.target) {\r\n if ($event.target.className.indexOf('mat-slide-toggle') > -1) {\r\n $event.stopPropagation();\r\n return false;\r\n } else {\r\n const clonedRecord = Object.assign({}, record);\r\n this.editUserClicked.emit(clonedRecord);\r\n }\r\n } else {\r\n const clonedRecord = Object.assign({}, record);\r\n this.editUserClicked.emit(clonedRecord);\r\n }\r\n }\r\n\r\n public newRecord() {\r\n const newUser = {\r\n copyAlerts: true,\r\n copyOrders: true,\r\n fboId: 0,\r\n groupId: 0,\r\n oid: 0,\r\n };\r\n if (this.fboInfo) {\r\n newUser.fboId = this.fboInfo.oid;\r\n newUser.groupId = this.fboInfo.groupId;\r\n } else if (this.groupInfo) {\r\n newUser.groupId = this.groupInfo.oid;\r\n }\r\n const dialogRef = this.newUserDialog.open(UsersDialogNewUserComponent, {\r\n data: newUser,\r\n width: '450px',\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n if (this.fboInfo) {\r\n result.active = this.fboInfo.active;\r\n }\r\n\r\n this.userService.add(result).subscribe((data: any) => {\r\n const savedUser = data;\r\n const userArray = this.usersDataSource.data;\r\n if (result.newPassword && result.newPassword !== '') {\r\n this.userService\r\n .updatePassword({\r\n newPassword: result.newPassword,\r\n user: data,\r\n })\r\n .subscribe(\r\n (newPassData: any) => {\r\n savedUser.password = newPassData.password;\r\n userArray.push(savedUser);\r\n this.usersDataSource.data = userArray;\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n }\r\n );\r\n } else {\r\n userArray.push(newUser);\r\n this.usersDataSource.data = userArray;\r\n }\r\n });\r\n });\r\n this.newUserClicked.emit();\r\n }\r\n\r\n public applyFilter(filterValue: string) {\r\n this.usersDataSource.filter = filterValue.trim().toLowerCase();\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n First Name\r\n \r\n {{ user.firstName }}\r\n \r\n\r\n \r\n Last Name\r\n {{ user.lastName }}\r\n \r\n\r\n \r\n Username\r\n {{ user.username }}\r\n \r\n\r\n \r\n Role\r\n {{ user.roleDescription }}\r\n \r\n\r\n \r\n \r\n Copy On Distribution?\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Copy On Orders?\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n Add New\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n Delete\r\n \r\n
\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, Input, OnInit } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n// Services\r\nimport { UserService } from '../../../services/user.service';\r\n\r\n@Component({\r\n selector: 'app-users-home',\r\n styleUrls: ['./users-home.component.scss'],\r\n templateUrl: './users-home.component.html',\r\n})\r\nexport class UsersHomeComponent implements OnInit {\r\n // Input/Output Bindings\r\n @Input() fboInfo: any;\r\n @Input() groupInfo: any;\r\n\r\n // Public Members\r\n public usersData: Array;\r\n public currentUser: any;\r\n\r\n constructor(\r\n public newUserDialog: MatDialog,\r\n private userService: UserService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.loadInitialData();\r\n }\r\n\r\n public editUserClicked(record) {\r\n this.userService\r\n .get(record)\r\n .subscribe((data: any) => (this.currentUser = data));\r\n }\r\n\r\n public deleteUserClicked() {\r\n this.loadInitialData();\r\n }\r\n\r\n public saveUserEditClicked() {\r\n this.currentUser = null;\r\n this.loadInitialData();\r\n }\r\n\r\n public cancelUserEditClicked() {\r\n this.currentUser = null;\r\n }\r\n\r\n // Private Methods\r\n private loadInitialData() {\r\n if (this.fboInfo) {\r\n this.loadAllUsersForFbo();\r\n } else if (this.groupInfo) {\r\n this.loadAllUsersForGroup();\r\n }\r\n }\r\n\r\n private loadAllUsersForFbo() {\r\n this.userService\r\n .getForFboId(this.fboInfo.oid)\r\n .subscribe((data: any) => (this.usersData = data));\r\n }\r\n\r\n private loadAllUsersForGroup() {\r\n this.userService\r\n .getForGroupId(this.groupInfo.oid)\r\n .subscribe((data: any) => (this.usersData = data));\r\n }\r\n}\r\n","
\r\n
\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 { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { AcukwikAirport } from '../models/AcukwikAirport';\r\nimport * as moment from 'moment';\r\n\r\n@Injectable()\r\nexport class AcukwikairportsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/AcukwikAirports';\r\n }\r\n\r\n public getAllAirports(): Observable {\r\n return this.http.get(this.accessPointUrl, { headers: this.headers });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public search(value) {\r\n return this.http.get(this.accessPointUrl + '/search/' + value, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getAcukwikFboHandlerDetailByIcao(icao) {\r\n return this.http.get(\r\n this.accessPointUrl + '/' + icao + '/fbo-handler-detail',\r\n { headers: this.headers }\r\n );\r\n }\r\n public getAcukwikAirportByICAO(icao:string): Observable {\r\n return this.http.get(\r\n this.accessPointUrl + '/byicao/' + icao ,\r\n { headers: this.headers }\r\n );\r\n }\r\n public getNearByAcukwikAirportsByICAO(icao:string,miles:number): Observable {\r\n return this.http.get(\r\n this.accessPointUrl + '/' + icao + '/nearby-airports/' + miles + '/nautical-miles',\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getAirportLocalTime(icao: string, fromDateTimeUtc?: Date): Observable {\r\n var route = this.accessPointUrl + '/local-time/' + icao;\r\n if (fromDateTimeUtc) {\r\n route += '?fromDateTimeUtc=' + encodeURIComponent(moment(fromDateTimeUtc).format(\"YYYY-MM-DD HH:mm\"));\r\n }\r\n return this.http.get(route, { headers: this.headers }); \r\n }\r\n\r\n public getAirportZuluTime(icao: string, fromDateTimeLocal?: Date): Observable {\r\n var route = this.accessPointUrl + '/zulu-time/' + icao;\r\n if (fromDateTimeLocal) {\r\n route += '?fromDateTimeLocal=' + encodeURIComponent(moment(fromDateTimeLocal).format(\"YYYY-MM-DD HH:mm\"));\r\n }\r\n return this.http.get(route, { headers: this.headers });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AircraftpricesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/aircraftprices';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getAircraftPricesForCustomerAircraft(customerAircraftId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/customeraircraft/' +\r\n customerAircraftId +\r\n '/fbo/' +\r\n fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public removeMultiple(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/delete-multiple',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { AircraftSize, AircraftType } from '../models';\r\n\r\n@Injectable()\r\nexport class AircraftsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/aircrafts';\r\n }\r\n\r\n public getAll() {\r\n return this.http.get(this.accessPointUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getAircraftSizes() {\r\n return this.http.get(this.accessPointUrl + '/sizes', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomersByTail(groupId, tailNumber) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/customers-by-tail/group/' +\r\n groupId +\r\n '/tail/' +\r\n tailNumber,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AirportFboGeofenceClusterCoordinatesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/AirportFboGeofenceClusterCoordinates';\r\n }\r\n\r\n get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n \r\n\r\n add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n \r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AirportFboGeofenceClustersService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/airportfbogeofenceclusters';\r\n }\r\n\r\n get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getAllClusters() {\r\n return this.http.get(this.accessPointUrl + '/', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getAirportsWithAntennaData() {\r\n return this.http.get(this.accessPointUrl + '/airports/list',\r\n {\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getAirportForGeoFencingByAcukwikAirportId(acukwikAirportId) {\r\n return this.http.get(this.accessPointUrl + '/airports/by-acukwik-id/' + acukwikAirportId,\r\n {\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getClustersByAcukwikAirportId(acukwikAirportId) {\r\n return this.http.get(this.accessPointUrl + '/clusters-by-acukwik-airport-id/' + acukwikAirportId,\r\n {\r\n headers: this.headers\r\n });\r\n }\r\n\r\n getClustersByIcao(icao) {\r\n return this.http.get(this.accessPointUrl + '/clusters-by-icao/' + icao,\r\n {\r\n headers: this.headers\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Aircraftwatch, FlightWatchModelResponse } from '../models/flight-watch';\r\nimport { AirportWatchHistoricalParking } from '../models/airport-watch-historical-parking';\r\n\r\nimport {\r\n AirportWatchHistoricalDataRequest,\r\n FlightWatchHistorical,\r\n} from '../models/flight-watch-historical';\r\nimport { IntraNetworkVisitsReportItem } from '../models/intra-network-visits-report-item';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class AirportWatchService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/airportwatch';\r\n }\r\n public logBackwards(body: FlightWatchModelResponse) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/log-backwards`,\r\n body,\r\n { headers: this.headers }\r\n );\r\n }\r\n public getAll(groupId: number, fboId: number) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/list/group/${groupId}/fbo/${fboId}`,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getArrivalsDepartures(\r\n groupId: number,\r\n fboId: number,\r\n body: AirportWatchHistoricalDataRequest,\r\n icao?: string\r\n ) : Observable{\r\n let query = icao ? `?icao=${icao}` : '';\r\n\r\n return this.http.post(\r\n `${this.accessPointUrl}/group/${groupId}/fbo/${fboId}/arrivals-depatures${query}`,\r\n body,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getArrivalsDeparturesSwim(\r\n fboId: number,\r\n body: AirportWatchHistoricalDataRequest,\r\n icao?: string\r\n ) {\r\n let query = icao ? `?icao=${icao}` : '';\r\n\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/fbo/' +\r\n fboId +\r\n '/arrivals-depatures-swim' + query,\r\n body,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getVisits(\r\n groupId: number,\r\n fboId: number,\r\n body: AirportWatchHistoricalDataRequest\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/visits',\r\n body,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getStartDate() {\r\n return this.http.get(this.accessPointUrl + '/start-date', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getParkingOccurrencesAtAirport(icao, startDateTime = null, endDateTime = null) {\r\n var route = this.accessPointUrl + '/parking-occurrences/' + icao;\r\n if (startDateTime != null) {\r\n route += '?startDateTime=' + startDateTime.toString();\r\n if (endDateTime != null) {\r\n route += 'endDateTime=' + endDateTime.toString();\r\n }\r\n }\r\n return this.http.get(route,\r\n {\r\n });\r\n }\r\n public getAircraftLiveData(groupId: number, fboid: number, tailNumber: string) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/aircraftLiveData/${groupId}/${fboid}/${tailNumber}`\r\n );\r\n }\r\n\r\n public getAntennaStatusData() {\r\n return this.http.get(\r\n `${this.accessPointUrl}/allAntennas`,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getUnassignedAntennaBoxes(antennaName: string) {\r\n var name = antennaName == null || antennaName == \"\" ? \"none\" : antennaName;\r\n return this.http.get(\r\n `${this.accessPointUrl}/unassignedAntennas/${name}`,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getIntraNetworkVisitsReport(groupId: number,fboId: number, startDateTimeUtc: Date, endDateTimeUtc: Date) {\r\n let query = `?startDateTimeUtc=${startDateTimeUtc.toISOString()}&endDateTimeUtc=${endDateTimeUtc.toISOString()}`;\r\n return this.http.get(\r\n `${this.accessPointUrl}/intra-network/visits-report/group/${groupId}/fbo/${fboId}${query}`,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public createHistoricalParking(record: FlightWatchHistorical) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/historical-parking`,\r\n record,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public updateHistoricalParking(record: FlightWatchHistorical) {\r\n return this.http.put(\r\n `${this.accessPointUrl}/historical-parking`,\r\n record,\r\n { headers: this.headers }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { LogColorCode, LogLevel } from '../models/logs/appLogs.service';\r\n\r\n@Injectable()\r\nexport class AppService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/app';\r\n }\r\n\r\n public getVersion() {\r\n return this.http.get(this.accessPointUrl + '/version');\r\n }\r\n public logData(title: string, data: string, colorCode: LogColorCode = LogColorCode.Red, logLevel: LogLevel = LogLevel.Error) {\r\n var body = { Title: title, Data: data, logColorCode: colorCode, logLevel: logLevel };\r\n return this.http.post(this.accessPointUrl + '/log-data', body);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class AssociationsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/associations';\r\n }\r\n\r\n get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\n\n@Injectable()\nexport class ContactinfobyfboService {\n private headers: HttpHeaders;\n private accessPointUrl: string;\n\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\n this.headers = new HttpHeaders({\n 'Content-Type': 'application/json; charset=utf-8',\n });\n this.accessPointUrl = baseUrl + 'api/contactinfobyfbo';\n }\n\n public getCustomerContactInfoByFbo(fboId, contactId) {\n return this.http.get(\n this.accessPointUrl +\n '/contact/' +\n contactId +\n '/fbo/' +\n fboId,\n {\n headers: this.headers,\n }\n );\n }\n\n public get(payload) {\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\n headers: this.headers,\n });\n }\n\n public add(payload) {\n return this.http.post(this.accessPointUrl, payload, {\n headers: this.headers,\n });\n }\n\n public remove(payload) {\n return this.http.delete(this.accessPointUrl + '/' + payload, {\n headers: this.headers,\n });\n }\n\n public update(payload) {\n if (payload.oid) {\n return this.http.put(\n this.accessPointUrl + '/contact/' + payload.oid,\n payload,\n {\n headers: this.headers,\n }\n );\n }\n }\n\n public updateDistributionForAllCustomerContacts(customerId, fboId, isEnabled) {\n return this.http.post(\r\n this.accessPointUrl + '/update-distribution-all-customer-contacts/' + customerId + '/fbo/' + fboId + '/is-enabled/' + (isEnabled == true ? 1 : 0),\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\n}\n\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ContactinfobygroupsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/contactinfobygroups';\r\n }\r\n\r\n public getCustomerContactInfoByGroup(groupId, fboId, customerId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/customer/' +\r\n customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload, userId, customerId) {\r\n return this.http.post(this.accessPointUrl + '/' + userId + '/customer/' + customerId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public addMultiple(groupId, customerId, payload) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/group/${groupId}/customer/${customerId}/multiple`,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public remove(payload , userId) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload+'/'+userId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n if (payload.oid) {\r\n return this.http.put(\r\n this.accessPointUrl + '/' + payload.oid,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n } else if (payload.contactInfoByGroupId) {\r\n payload.Oid = payload.contactInfoByGroupId;\r\n return this.http.put(\r\n this.accessPointUrl + '/' + payload.Oid,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n }\r\n\r\n public import(payload) {\r\n return this.http.post(this.accessPointUrl + '/import', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class ContactsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/contacts';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public addMultiple(contacts) {\r\n return this.http.post(`${this.accessPointUrl}/multiple`, contacts, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomcustomertypesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customcustomertypes';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getForFboAndCustomer(fboId, customerId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/customer/' + customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload , userId) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid+'/'+userId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateForFboAndCustomer(payload) {\r\n return this.http.put(this.accessPointUrl + '/update', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateCollection(payload) {\r\n return this.http.post(this.accessPointUrl + '/collection', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateDefaultTemplate(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/updatedefaulttemplate',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { CustomerCompanyType } from '../models';\r\n\r\n@Injectable()\r\nexport class CustomerCompanyTypesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customercompanytypes';\r\n }\r\n\r\n public getForFbo(fboId) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getNonFuelerLinxForFbo(fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/nofuelerlinx',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CustomerAircraftNote } from '../models/customer-aircraft-note';\r\n\r\n@Injectable()\r\nexport class CustomeraircraftsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string , private route : ActivatedRoute) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customeraircrafts';\r\n }\r\n\r\n public getCustomerAircraftsByGroupAndCustomerId(\r\n groupId,\r\n fboId,\r\n customerId\r\n ) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/customer/' +\r\n customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerAircraftsByGroup(groupId) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomerAircraftsByGroupAndFbo(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/group/' + groupId + '/fbo/' + fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getAircraftsListByGroupAndFbo(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/list',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerAircraftsCountByGroupId(groupId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/group/' + groupId + '/count',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload , userId, fboId: number = 0, isFavorite: boolean = false ) {\r\n return this.http.post(`${this.accessPointUrl}/${userId}/?isFavorite=${isFavorite}&fboId=${fboId}`, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public addMultipleWithTemplate(groupId, fboId, customerId, payload) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/group/${groupId}/fbo/${fboId}/customer/${customerId}/multiple`,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public import(payload) {\r\n return this.http.post(this.accessPointUrl+'/import', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload , userId) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid+'/'+userId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload , userId) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid+'/'+userId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateTemplate(fboid, payload) {\r\n return this.http.put(this.accessPointUrl + '/fbo/' + fboid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public createAircraftWithCustomer(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/create-with-customer',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerAircraftNotes(customerAircraftId: number) {\r\n return this.http.get(\r\n this.accessPointUrl + '/notes/' + customerAircraftId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerAircraftNotesByTailNumberGroupIdCustomerId(tailNumber: string, groupId: number, customerId: number) {\r\n return this.http.get(\r\n this.accessPointUrl + '/notes/tailnumber/' + tailNumber + '/groupId/' + groupId + '/customerid/' + customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public addCustomerAircraftNotes(payload: CustomerAircraftNote) {\r\n return this.http.post(this.accessPointUrl + '/notes', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateCustomerAircraftNotes(payload: CustomerAircraftNote) {\r\n return this.http.put(this.accessPointUrl + '/notes/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public deleteCustomerAircraftNotes(id: number) {\r\n return this.http.delete(\r\n this.accessPointUrl + '/notes/' + id,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomercontactsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customercontacts';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload , userId) {\r\n return this.http.post(this.accessPointUrl+'/'+userId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload , userId) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload+'/'+userId , {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomerEmailsByGroupAndFBOAndPricing(\r\n groupId: number,\r\n fboId: number,\r\n pricingTemplateId: number\r\n ) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/pricingtemplate/' +\r\n pricingTemplateId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { CertificateType } from '../models';\r\nimport { CustomerInfoByGroupNote } from '../models/customer-info-by-group-note';\r\n\r\n@Injectable()\r\nexport class CustomerinfobygroupService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customerinfobygroup';\r\n }\r\n\r\n public getCustomerInfoByGroupListByGroupId(groupId) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId + '/list', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomersViewModelByGroup(groupId) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId + '/viewmodel', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomerInfoByGroupAndCustomerId(groupId, customerId) {\r\n return this.http.get(this.accessPointUrl + '/group/' +\r\n groupId +\r\n '/customer/' +\r\n customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getByGroupAndFbo(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/group/' + groupId + '/fbo/' + fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomersWithContactsByGroup(groupId) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/group/${groupId}/customers-with-contacts`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerLogger(customerId, fboId: number)\r\n {\r\n return this.http.get(`${this.accessPointUrl}/CustomerLogger/customer/${customerId}/fbo/${fboId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getNeedsAttentionByGroupAndFbo(groupId: number, fboId: number) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/group/${groupId}/fbo/${fboId}/needs-attention`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerCountByGroupAndFBO(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/count',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerNamesByGroupAndFBO(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/customers/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomersByGroupAndFBOAndPricing(\r\n groupId,\r\n fboId,\r\n pricingTemplateId\r\n ) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/pricingtemplate/' +\r\n pricingTemplateId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCertificateTypes() {\r\n return this.http.get(\r\n this.accessPointUrl + '/CertificateTypes',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCustomerSources() {\r\n return this.http.get(this.accessPointUrl + '/CustomerSources', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomersWithoutMargins(groupId, fboId, count) {\r\n if (!count) {\r\n count = 0;\r\n }\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/nomargin/' +\r\n count.toString(),\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public add(payload , userId) {\r\n return this.http.post(this.accessPointUrl+'/'+userId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload , userId) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid+'/'+userId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public matchcustomerinfo(customerId: number, groupId: number) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/matchcustomerinfo/customerId/${customerId}/groupId/${groupId}`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n getCustomerByGroupLogger(customerId) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/GetCustomerLogger/${customerId}`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n getCustomerByGroupLoggerData(oid , logType) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/GetCustomerLoggerDetails/id/${oid}/logType/${logType}`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n public rejectmerge(customerId: number, groupId: number) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/rejectmergeforcustomer/customerId/${customerId}/groupId/${groupId}`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public acceptmerge(\r\n customerId: number,\r\n flcustomerId: number,\r\n groupId: number\r\n ) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/mergecustomers/customerId/${customerId}/flcustomerid/${flcustomerId}/groupId/${groupId}`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n getGroupAnalytics(groupId: number, customerId: number) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/group-analytics/group/${groupId}`,\r\n customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n getGroupAnalyticsAndEmail(groupId: number, customerId: number) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/group-analytics/email/group/${groupId}`,\r\n customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n getCustomersListByGroupAndFbo(groupId: number, fboId: number) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/group/${groupId}/fbo/${fboId}/list`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n getFuelVendors() {\r\n return this.http.get(`${this.accessPointUrl}/fuelvendors`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getCustomerInfoByGroupNote(customerInfoByGroupId: number) {\r\n return this.http.get(`${this.accessPointUrl}/notes/` + customerInfoByGroupId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getCustomerInfoByGroupNoteByCustomerIdGroupId(customerId: number, groupId: number) {\r\n return this.http.get(`${this.accessPointUrl}/notes/customerid/${customerId}/groupid/${groupId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n addCustomerInfoByGroupNote(payload: CustomerInfoByGroupNote) {\r\n return this.http.post(`${this.accessPointUrl}/notes`, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n updateCustomerInfoByGroupNote(payload: CustomerInfoByGroupNote) {\r\n\r\n return this.http.put(`${this.accessPointUrl}/notes/` + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteCustomerInfoByGroupNoteById(id: number) {\r\n return this.http.delete(`${this.accessPointUrl}/notes/` + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomermarginsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customermargins';\r\n }\r\n\r\n public getCustomerMarginsByPricingTemplateId(pricingTemplateId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/pricingtemplate/' + pricingTemplateId,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getAllFbos() {\r\n return this.http.get(this.accessPointUrl, { headers: this.headers });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public bulkRemove(payload) {\r\n return this.http.post(this.accessPointUrl + '/bulkremove', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n\r\n public updatecustomermargin(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/updatecustomermargin',\r\n payload,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public updatemultiplecustomermargin(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/updatemultiplecustomermargin',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { Customer } from '../models/customer';\r\n\r\n@Injectable()\r\nexport class CustomersService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customers';\r\n }\r\n\r\n public getByGroupAndFbo(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/group/' + groupId + '/fbo/' + fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload: Customer) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public importcustomers(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/importcustomers',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class CustomersviewedbyfboService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/CustomersViewedByFbos';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getCustomerCountNeedingAttention(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/needsattention/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DateTimeService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/datetime';\r\n }\r\n\r\n public getNextTuesdayDate(date) {\r\n return this.http.get(this.accessPointUrl + '/next-tuesday/' + date, {\r\n headers: this.headers,\r\n responseType: 'text',\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DistributionService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/distribution';\r\n }\r\n\r\n public getDistributionLogForFbo(fboId, resultCount) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/log/' + resultCount,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getDistributionValidityForFbo(fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/validity',\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public distributePricing(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/distributepricing',\r\n payload,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public previewDistribution(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/previewdistribution',\r\n payload,\r\n { headers: this.headers }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { DocumentsToAcceptDto } from '../models/DocumentsToAcceptDto';\r\nimport { GroupPolicyAndAgreementDocuments } from '../models/GroupPolicyAndAgreementDocuments';\r\nimport { UserAcceptedPolicyAndAgreements } from '../models/UserAcceptedPolicyAndAgreements';\r\n\r\n@Injectable()\r\nexport class DocumentService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/documents';\r\n }\r\n acceptDocument(userId: number, documentId: number) {\r\n return this.http.post(this.accessPointUrl + '/' + documentId + '/user/' + userId + '/accept-policies-and-agreements', {}, {\r\n headers: this.headers,\r\n });\r\n }\r\n getDocumentsToAccept(userId: number, groupId: number) {\r\n return this.http.get(this.accessPointUrl +`/group/${groupId}/user/${userId}/documents-to-accept`, {\r\n headers: this.headers,\r\n });\r\n }\r\n getRecentsAvailableDocuments(groupId: number) {\r\n return this.http.get(this.accessPointUrl+`/group/${groupId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n updateExemptedDocuments(groupId:number, payload: GroupPolicyAndAgreementDocuments[]) {\r\n return this.http.post(this.accessPointUrl+`/group/${groupId}/toogle-document-exemption`,payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n getLastEulaVersion() {\r\n return this.http.get(this.accessPointUrl+`/terms-of-service`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class EmailcontentService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/EmailContents';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getForFbo(fboId) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getForGroup(groupId: number) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getFileAttachmentName(emailContentId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fileattachmentname/' +\r\n emailContentId,\r\n {\r\n headers: this.headers,\r\n responseType: 'text',\r\n }\r\n );\r\n }\r\n\r\n public uploadFileAttachment(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/uploadfileattachment/',\r\n payload,\r\n {\r\n headers: this.headers,\r\n responseType: 'text',\r\n }\r\n );\r\n }\r\n\r\n public downloadFileAttachment(emailContentId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fileattachment/' +\r\n emailContentId,\r\n {\r\n headers: this.headers,\r\n responseType: 'text',\r\n }\r\n );\r\n }\r\n\r\n public deleteFileAttachment(emailContentId) {\r\n return this.http.delete(\r\n this.accessPointUrl + '/fileattachment/' + emailContentId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { FboFavoriteAircraft } from '../models/favorites/favoriteAircraft';\r\nimport { FboFavoriteCompany } from '../models/favorites/favoriteCompany';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FavoritesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/favorites';\r\n }\r\n public saveCompanyFavorite(fboId: number, customerInfoByGroupId: number) {\r\n var payload : FboFavoriteCompany = {\r\n oid: 0,\r\n customerInfoByGroupId: customerInfoByGroupId,\r\n fboId: fboId\r\n };\r\n\r\n return this.http.post(`${this.accessPointUrl}/company`,payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n public saveAircraftFavorite(fboId: number,customerAircraftId: number, groupId: number) {\r\n var payload : FboFavoriteAircraft = {\r\n oid: 0,\r\n fboId: fboId,\r\n customerAircraftsId: customerAircraftId\r\n };\r\n return this.http.post(`${this.accessPointUrl}/aircraft/group/${groupId}`,payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n public deleteCompanyFavorite(oid: number) {\r\n return this.http.delete(`${this.accessPointUrl}/company/${oid}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n public deleteAircraftFavorite(oid: number, groupId: number) {\r\n return this.http.delete(`${this.accessPointUrl}/aircraft/${oid}/group/${groupId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FboairportsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fboairports';\r\n }\r\n\r\n public getForFbo(payload) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getLocalDateTime(fboId) {\r\n return this.http.get(this.accessPointUrl + '/local-datetime-now/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getLocalTimeZone(fboid) {\r\n return this.http.get(this.accessPointUrl + '/local-timezone/fbo/' + fboid, {\r\n headers: this.headers,\r\n responseType: 'text',\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FbocontactsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fbocontacts';\r\n }\r\n\r\n public getForFbo(payload) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public addnewcontact(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/fbo/' + payload.fboId + '/newcontact',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public updateFuelvendor(payload) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/fbo/' +\r\n payload.fboId +\r\n '/update-fuel-vendor',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FbofeeandtaxomitsbycustomerService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/FboFeeAndTaxOmitsByCustomer';\r\n }\r\n\r\n public getById(id) {\r\n return this.http.get(this.accessPointUrl + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FbofeeandtaxomitsbypricingtemplateService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl =\r\n baseUrl + 'api/FboFeeAndTaxOmitsByPricingTemplate';\r\n }\r\n\r\n public getById(id) {\r\n return this.http.get(this.accessPointUrl + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { FeesAndTaxes } from '../models';\r\n\r\n@Injectable()\r\nexport class FbofeesandtaxesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fboFeesAndTaxes';\r\n }\r\n\r\n public getById(id) {\r\n return this.http.get(this.accessPointUrl + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getByFbo(fboId) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getByFboAndCustomer(fboId, customerId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/customer/' + customerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getByFboAndPricingTemplate(fboId, pricingTemplateId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/fbo/' +\r\n fboId +\r\n '/pricing-template/' +\r\n pricingTemplateId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getByFboAndAircraft(fboId, aircraftId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/aircraft/' + aircraftId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FbomissedquoteslogService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fbomissedquoteslog';\r\n }\r\n\r\n public getRecentMissedQuotes(fboId) {\r\n return this.http.get(this.accessPointUrl + '/recent-missed-quotes/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getRecentMissedOrders(fboId) {\r\n return this.http.get(this.accessPointUrl + '/recent-missed-orders/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getMissedOrders(fboId, startDate, endDate) {\r\n return this.http.get(this.accessPointUrl + '/missed-orders/fbo/' + fboId + \"?startDate=\" + encodeURIComponent(startDate) + \"&endDate=\" + encodeURIComponent(endDate), {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FbopreferencesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fbopreferences';\r\n }\r\n\r\n public getForFbo(fboId) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class FbopricesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fboprices';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getFbopricesByFboIdCurrent(fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/current',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public checkFboExpiredPricing(fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/ispricingexpired',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public checkFboExpiredPricingGroup(groupid) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupid +\r\n '/ispricingexpiredgroupadmin',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFbopricesByFboIdStaged(fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/staged',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFbopricesByFboIdAllStaged(fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/all-staged',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFbopricesByFboIdAndProductCurrent(fboId, product) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/fbo/' +\r\n fboId +\r\n '/product/' +\r\n encodeURIComponent(product) +\r\n '/current',\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public checkifExistFboPrice(fboId, payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/fbo/' + fboId + '/check/',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public checkifExistStagedFboPrice(fboId, payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/fbo/' + fboId + '/checkstaged/',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public suspendPricing(oid) {\r\n return this.http.post(this.accessPointUrl + '/suspendpricing/' + oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public suspendPricingGenerator(payload) {\r\n return this.http.post(this.accessPointUrl + '/suspend-pricing-generator/', \r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getPricesByMonthForFbo(fboId, payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/prices-by-month/fbo/' + fboId,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFuelPricesForCompany(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/price-lookup-for-customer/',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public removePricing(fboid, product) {\r\n return this.http.delete(this.accessPointUrl + '/delete-price-by-product/fbo/' + fboid + \"/product/\" + product, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updatePricingGenerator(payload) {\r\n return this.http.post(this.accessPointUrl + '/update-price-generator/', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public handlePriceChangeCleanUp(fboId) {\r\n return this.http.post(this.accessPointUrl + '/handle-price-change-cleanup/' + fboId,\r\n {\r\n headers: this.headers\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { FbosGridViewModel } from '../models/FbosGridViewModel';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class FbosService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fbos';\r\n }\r\n\r\n public getForGroup(groupId) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getAllFbos(): Observable {\r\n return this.http.get(this.accessPointUrl, { headers: this.headers });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getFbosByIcao(icao) {\r\n return this.http.get(`${this.accessPointUrl}/icao/${icao}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getByFboId(fboid) {\r\n return this.http.get(this.accessPointUrl + '/' + fboid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public addSingleFbo(payload) {\r\n return this.http.post(this.accessPointUrl + '/single', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public manageFbo(id: number) {\r\n return this.http.post(\r\n this.accessPointUrl + '/manage/' + id,\r\n {},\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getLocation(id: number) {\r\n return this.http.get(this.accessPointUrl + '/' + id + '/location', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getByAcukwikHandlerId(handlerId: number) {\r\n return this.http.get(\r\n this.accessPointUrl + '/by-akukwik-handlerId/' + handlerId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public updateLastLogin(fboId: number) {\r\n return this.http.post(this.accessPointUrl + '/updatelastlogin/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public uploadLogo(payload) {\r\n return this.http.post(this.accessPointUrl + '/uploadfbologo', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public deleteLogo(id: number) {\r\n return this.http.delete(this.accessPointUrl + '/fbologo/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getLogo(fboid: number) {\r\n return this.http.get(this.accessPointUrl + '/getfbologo/' + fboid, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { ApiResponseWraper } from '../models/apiResponseWraper';\r\nimport { FlightWatchModelResponse } from '../models/flight-watch';\r\n\r\n@Injectable()\r\nexport class FlightWatchService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/flightWatch';\r\n }\r\n\r\n public getAirportLiveData(fboId: number, icao: string) {\r\n return this.http.get>(\r\n `${this.accessPointUrl}/list/fbo/${fboId}/airport/${icao}/light-weight`,\r\n { headers: this.headers }\r\n );\r\n }\r\n public getAircarftLiveDataHistorical(fboId: number, icao: string, id : number) {\r\n return this.http.get(\r\n `${this.accessPointUrl}/aircraft/fbo/${fboId}/airport/${icao}/livedata/${id}`,\r\n { headers: this.headers }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport * as moment from 'moment';\r\nimport { CustomerCaptureRateReport } from '../models/customer-capture-rate-report';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class FuelreqsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/fuelreqs';\r\n }\r\n\r\n public getForFbo(fboId: number) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getForFboAndDateRange(\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl + '/fbo/' + fboId + '/daterange',\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getForGroupFboAndDateRange(\r\n groupId: number,\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/daterange',\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getForFboCount(fboId: number, startDate: Date) {\r\n return this.http.post(\r\n this.accessPointUrl + '/fbo/' + fboId + '/count' + '/startdate',\r\n {\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(id) {\r\n return this.http.get(this.accessPointUrl + '/' + id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getBySourceId(sourceId, fboId) {\r\n return this.http.get(this.accessPointUrl + '/sourceid/' + sourceId + '/fboid/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl + '/create', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateArchived(payload) {\r\n return this.http.put(this.accessPointUrl + '/updatearchived/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getAdditionalOrderNotes(associatedFuelOrderId: number, associatedServiceOrderId: number,associatedFuelerlinxTransactionId: number) {\r\n return this.http.get(\r\n this.accessPointUrl + '/ordernotes/associatedfuelorderid/' + associatedFuelOrderId + '/associatedserviceorderid/' + associatedServiceOrderId + '/associatedfuelerlinxtransactionid/' + associatedFuelerlinxTransactionId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public addAdditionalNotes(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/ordernotes', payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public editAdditionalNote(payload) {\r\n return this.http.put(\r\n this.accessPointUrl + '/ordernotes', payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public deleteAdditionalNote(payload) {\r\n return this.http.delete(\r\n this.accessPointUrl + '/ordernotes/' + payload.oid,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n // Analysis Services\r\n\r\n public topCustomersForFbo(fboId, payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/top-customers/fbo/' + fboId,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public totalOrdersByMonthForFbo(fboId, payload) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/total-orders-by-month/fbo/' +\r\n fboId,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public totalOrdersByAircraftSizeForFbo(fboId, payload) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/total-orders-by-aircraft-size/fbo/' +\r\n fboId,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getOrdersByLocation(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/fuelerlinx/orders-by-location',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getQuotesAndOrders(fboId: number, startDate: Date, endDate: Date) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/quotes-orders-over-time/fbo/' +\r\n fboId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n fboId,\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getOrders(fboId: number, startDate: Date, endDate: Date) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/orders-won-over-time/fbo/' + fboId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n fboId,\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getVolumesNearbyAirport(\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date,\r\n mile: number\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/volumes-nearby-airport/fbo/' +\r\n fboId,\r\n {\r\n distanceMile: mile,\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n icao: '',\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getMarketShareAirport(\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/market-share-airport/fbo/' + fboId,\r\n {\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFBOCustomersBreakdown(\r\n fboId: number,\r\n groupId: number,\r\n customerId: number,\r\n startDate: Date,\r\n endDate: Date,\r\n chartType: string\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/customers-breakdown/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId +\r\n '/customer/' +\r\n customerId,\r\n {\r\n chartType,\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n icao: '',\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getCompaniesQuotingDealStatistics(\r\n groupId: number,\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date,\r\n icao?: string\r\n ) {\r\n let query = icao ? `?icao=${icao}` : '';\r\n\r\n return this.http.post(\r\n `${this.accessPointUrl}/analysis/company-quoting-deal-statistics/group/${groupId}/fbo/${fboId}${query}`,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm')\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n public getCustomerCaptureRate(\r\n groupId: number,\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date,\r\n ): Observable{\r\n let query = `?startDateTime=${startDate.toISOString()}&endDateTime=${endDate.toISOString()}`;\r\n return this.http.get(\r\n `${this.accessPointUrl}/analysis/customer-capture-rate/group/${groupId}/fbo/${fboId}${query}`,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n public getCompaniesQuotingDealStatisticsForGroupFbos(\r\n groupId: number,\r\n fboIds: number[],\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/company-quoting-deal-statistics/group/' +\r\n groupId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n fboIds,\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n //Get Customer Analytics Id\r\n public getCompanyQuotingDealStatistics(groupId: number, fboId: number, startDate: Date, endDate: Date , customerId: number) {\r\n return this.http.post(\r\n this.accessPointUrl + '/analysis/company-quoting-deal-statistics/group/' + groupId + '/fbo/' + fboId,\r\n {\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n customerId: customerId.toString()\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFuelVendorSources(fboId: number, startDate: Date, endDate: Date) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/fbo-fuel-vendor-sources/fbo/' +\r\n fboId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n icao: '',\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getMarketShareFboAirport(\r\n fboId: number,\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/market-share-fbo-airport/fbo/' +\r\n fboId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n icao: '',\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getMarketShareFbosAirports(\r\n groupId: number,\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/market-share-fbos-airports/group/' +\r\n groupId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n icaos: [],\r\n fbos: []\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFuelVendorSourcesByAirports(\r\n groupId: number,\r\n startDate: Date,\r\n endDate: Date\r\n ) {\r\n return this.http.post(\r\n this.accessPointUrl +\r\n '/analysis/fbo-fuel-vendor-sources/group/' +\r\n groupId,\r\n {\r\n endDateTime: moment(endDate).format('MM/DD/YYYY HH:mm'),\r\n startDateTime: moment(startDate).format('MM/DD/YYYY HH:mm'),\r\n icaosfbos: {}\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n public sendOrderConfirmationNotification(payload) {\r\n return this.http.post(\r\n `${this.accessPointUrl}/send-email-confirmation`,\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { GroupFboViewModel } from '../models/groups';\r\n\r\n@Injectable()\r\nexport class GroupsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/groups';\r\n }\r\n\r\n isGroupFboSingleSource(icao: string) {\r\n return this.http.get(`${this.accessPointUrl}/icao/${icao}/is-single-source`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getAllGroups() {\r\n return this.http.get(this.accessPointUrl, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n groupsAndFbos( groupId = null) {\r\n const queryparam = groupId ? `?groupId=${groupId}` : '';\r\n return this.http.get(this.accessPointUrl + '/group-fbo'+queryparam, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n mergeGroups(payload) {\r\n return this.http.post(this.accessPointUrl + '/merge-groups', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getLogo(id: number) {\r\n return this.http.get(this.accessPointUrl + `/group/${id}/logo`, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n uploadLogo(payload) {\r\n return this.http.post(this.accessPointUrl + '/upload-logo', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n deleteLogo(id: number) {\r\n return this.http.delete(this.accessPointUrl + `/group/${id}/logo`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class JetNetService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/jetnet';\r\n }\r\n\r\n //Call the GetJetNetInformation method in the JetNetController\r\n public getJetNetInformationByTailNumber(tailNumber: string) {\r\n return this.http.get(this.accessPointUrl + '/' + tailNumber);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class LandingsiteService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/landingsite';\r\n }\r\n\r\n public postContactUsMessage(payload) {\r\n return this.http.post(this.accessPointUrl + '/ContactUs', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GroupFboViewModel } from '../models/groups';\r\nimport { foreignKeyData } from '@syncfusion/ej2-angular-grids';\r\n\r\n@Injectable()\r\nexport class ManageFboGroupsService {\r\n public getGroupFbos(groupsFbosData: GroupFboViewModel,groupId: number) {\r\n return groupsFbosData.fbos.filter(\r\n (fbo) => fbo.groupId === groupId\r\n );\r\n }\r\n public isSingleSourceFbo(groupsFbosData: GroupFboViewModel,icao: string): boolean {\r\n return groupsFbosData.fbos.filter(f => f.icao == icao).length == 1;\r\n }\r\n public isNetworkFbo(groupsFbosData: GroupFboViewModel,groupId: number): boolean{\r\n var groupFbos = groupsFbosData.groups.find(g => g.oid == groupId);\r\n return groupFbos?.fboCount > 1;\r\n }\r\n}\r\n","import { ElementRef } from '@angular/core';\r\nimport { Dictionary } from 'lodash';\r\nimport * as mapboxgl from 'mapbox-gl';\r\nimport { environment } from 'src/environments/environment';\r\nexport interface PopUpProps{\r\n coordinates: [number,number];\r\n popupId: string;\r\n popupInstance: mapboxgl.Popup\r\n isOpen: boolean;\r\n}\r\nexport abstract class MapboxglBase {\r\n public map: mapboxgl.Map;\r\n public openedPopUps: Dictionary = {};\r\n public popUpPropsNewInstance : PopUpProps = {\r\n coordinates: [0,0],\r\n popupId: '',\r\n popupInstance: null,\r\n isOpen: true\r\n };\r\n buildMap(\r\n center: mapboxgl.LngLatLike,\r\n container: string,\r\n style: string,\r\n zoom: number = 12,\r\n optimizeMap: boolean = false\r\n ) {\r\n let optimizeMapFlag = (optimizeMap)?'?optimize=true':'';\r\n this.map = new mapboxgl.Map({\r\n container: container,\r\n style: style + optimizeMapFlag,\r\n zoom: zoom,\r\n center: center,\r\n accessToken: environment.mapbox.accessToken,\r\n });\r\n\r\n return this;\r\n }\r\n addNavigationControls(): this{\r\n this.map.addControl(new mapboxgl.NavigationControl(), 'top-left');\r\n return this;\r\n }\r\n addGeolocationControls(): this{\r\n this.map.addControl(new mapboxgl.GeolocateControl({\r\n positionOptions: {\r\n enableHighAccuracy: true\r\n },\r\n // When active the map will receive updates to the device's location as it changes.\r\n trackUserLocation: true,\r\n // Draw an arrow next to the location dot to indicate which direction the device is heading.\r\n showUserHeading: true\r\n }));\r\n return this;\r\n }\r\n /* start on functions */\r\n onZoomStart(callBack): this{\r\n this.map.on('zoomstart', async() => callBack);\r\n return this;\r\n }\r\n onZoomEnd(callBack): this{\r\n this.map.on('zoomend', callBack);\r\n return this;\r\n }\r\n onZoom(callBack): this{\r\n this.map.on('zoom', callBack);\r\n return this;\r\n }\r\n onDragend(callBack): this{\r\n this.map.on('dragend', callBack);\r\n return this;\r\n }\r\n onRotate(callBack): this{\r\n this.map.on('rotate', callBack);\r\n return this;\r\n }\r\n onResize(callBack): this{\r\n this.map.on('resize', callBack);\r\n return this;\r\n }\r\n onIdle(callBack): this{\r\n this.map.on('idle', callBack);\r\n return this;\r\n }\r\n onStyleData(callBack): this{\r\n this.map.on('styledata', callBack);\r\n return this;\r\n }\r\n onStyleLoad(callBack): this{\r\n this.map.on('style.load', callBack);\r\n return this;\r\n }\r\n onLoad(callBack): this{\r\n this.map.on('load', callBack);\r\n return this;\r\n }\r\n onClick(elementId:string,callBack): this{\r\n this.map.on('click', elementId, callBack);\r\n return this;\r\n }\r\n onceClick(elementId:string,callBack): this{\r\n this.map.once('click', elementId, callBack);\r\n return this;\r\n }\r\n onMapClick(callBack): this{\r\n this.map.on('click', callBack);\r\n return this;\r\n }\r\n onSourcedata(callBack): this{\r\n this.map.on('sourcedata', callBack);\r\n return this;\r\n }\r\n onReady(callBack): this{\r\n this.map.on('ready', callBack);\r\n return this;\r\n }\r\n /* end on functions */\r\n\r\n /* start get functions */\r\n getBounds(): mapboxgl.LngLatBounds {\r\n return this.map.getBounds();\r\n }\r\n getStyle(): mapboxgl.Style{\r\n return this.map.getStyle();\r\n }\r\n getLayoutProperty(layer: string, name: string): any{\r\n return this.map.getLayoutProperty(layer, name);\r\n }\r\n getSource(sourceId: string): mapboxgl.GeoJSONSource {\r\n return this.map.getSource(sourceId) as mapboxgl.GeoJSONSource\r\n }\r\n getLayer(layerId: string): mapboxgl.AnyLayer{\r\n return this.map.getLayer(layerId);\r\n }\r\n /* ends get functions */\r\n\r\n /* start set functions */\r\n setStyle(style: string): void {\r\n this.map.setStyle(style);\r\n }\r\n setLayoutProperty(layer: string, name: string, value: any): void{\r\n this.map.setLayoutProperty(layer, name, value);\r\n }\r\n setPaintProperty(layerId: string, name: string, value: string): void{\r\n this.map.setPaintProperty(layerId, name, value);\r\n }\r\n /* end set functions */\r\n\r\n mapResize(): this{\r\n this.map.resize();\r\n return this;\r\n }\r\n mapRemove(): void{\r\n this.map.remove();\r\n }\r\n addSource(id: string, sourceData: mapboxgl.AnySourceData): void {\r\n this.map.addSource(id, sourceData);\r\n }\r\n addLayer(layerData: mapboxgl.AnyLayer): void {\r\n this.map.addLayer(layerData);\r\n }\r\n removeLayer(layerId: string): void {\r\n this.map.removeLayer(layerId);\r\n }\r\n removeSource(sourceId: string): void {\r\n this.map.removeSource(sourceId);\r\n }\r\n removeMouseHoverActions(id: string): void{\r\n this.map.off('mouseenter', id, () => this.cursorPointer('pointer'));\r\n this.map.off('mouseleave', id, () => this.cursorPointer(''));\r\n }\r\n addHoverPointerActions(id: string):void {\r\n this.map.on('mouseenter', id, () => this.cursorPointer('pointer'));\r\n this.map.on('mouseleave', id, () => this.cursorPointer(''));\r\n }\r\n cursorPointer(cursor: string): void{\r\n this.map.getCanvas().style.cursor = cursor;\r\n }\r\n createPopUpOnMouseEnterFromDescription(layerId: string): void{\r\n // Create a popup, but don't add it to the map yet.\r\n const popup = new mapboxgl.Popup({\r\n closeButton: false,\r\n closeOnClick: false,\r\n });\r\n\r\n this.map.on('mouseenter', layerId, (e) => {\r\n // Change the cursor style as a UI indicator.\r\n this.map.getCanvas().style.cursor = 'pointer';\r\n\r\n // Copy coordinates array.\r\n const coordinates = e.lngLat;\r\n const description = e.features[0].properties.description;\r\n\r\n // Ensure that if the map is zoomed out such that multiple\r\n // copies of the feature are visible, the popup appears\r\n // over the copy being pointed to.\r\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\r\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\r\n }\r\n\r\n // Populate the popup and set its coordinates\r\n // based on the feature found.\r\n popup.setLngLat(coordinates).setHTML(description).addTo(this.map);\r\n });\r\n\r\n this.map.on('mouseleave', layerId, () => {\r\n this.map.getCanvas().style.cursor = '';\r\n popup.remove();\r\n });\r\n }\r\n createPopUpOnClickFromDescription(layerId: string): void{\r\n // When a click event occurs on a feature in the places layer, open a popup at the\r\n // location of the feature, with description HTML from its properties.\r\n this.map.on('click', layerId, (e) => {\r\n\r\n // Copy coordinates array.\r\n const coordinates = e.features[0].geometry['coordinates'].slice();\r\n const description = e.features[0].properties.description;\r\n // Ensure that if the map is zoomed out such that multiple\r\n // copies of the feature are visible, the popup appears\r\n // over the copy being pointed to.\r\n while (Math.abs(e.lngLat.lng - coordinates[0]) > 180) {\r\n coordinates[0] += e.lngLat.lng > coordinates[0] ? 360 : -360;\r\n }\r\n\r\n new mapboxgl.Popup()\r\n .setLngLat(coordinates)\r\n .setHTML(description)\r\n .addTo(this.map);\r\n });\r\n\r\n // Change the cursor to a pointer when the mouse is over the places layer.\r\n this.map.on('mouseenter', layerId, () => {\r\n this.map.getCanvas().style.cursor = 'pointer';\r\n });\r\n\r\n // Change it back to a pointer when it leaves.\r\n this.map.on('mouseleave', layerId, () => {\r\n this.map.getCanvas().style.cursor = '';\r\n });\r\n }\r\n closeAllPopUps(){\r\n const elements = Array.from(document.getElementsByClassName('mapboxgl-popup'));\r\n elements.forEach(elem => {\r\n elem.remove();\r\n });\r\n }\r\n async loadPNGImageAsync(src: string,imageId: string){\r\n return new Promise((resolve, reject) => {\r\n this.map.loadImage(src,\r\n (error, image) => {\r\n if (error) reject(imageId);\r\n this.map.addImage(imageId, image);\r\n resolve(imageId);\r\n });\r\n });\r\n }\r\n async loadSVGImageAsync(width:number, height:number, src: string, imageName:string){\r\n return new Promise((resolve, reject) => {\r\n let img = new Image(width, height);\r\n img.onload = () => {\r\n this.map.addImage(imageName, img);\r\n resolve(imageName);\r\n };\r\n img.onerror = reject;\r\n img.src = src;\r\n });\r\n }\r\n async getFncAsAsync(callBack): Promise{\r\n return new Promise((resolve, reject) => {\r\n resolve(callBack);\r\n });\r\n }\r\n openPopupRenderComponent(coordinates: [number,number],elemRef: ElementRef):mapboxgl.Popup{\r\n return new mapboxgl.Popup()\r\n .setLngLat(coordinates)\r\n .setDOMContent(elemRef.nativeElement)\r\n .setMaxWidth(\"450px\")\r\n .addTo(this.map);\r\n }\r\n openPopupRenderHtml(coordinates: [number,number],html: string):mapboxgl.Popup{\r\n return new mapboxgl.Popup()\r\n .setLngLat(coordinates)\r\n .setHTML(html)\r\n .setMaxWidth(\"450px\")\r\n .addTo(this.map);\r\n }\r\n flyTo(center: mapboxgl.LngLatLike,hasAnimation = true){\r\n this.map.flyTo({\r\n zoom: 13,\r\n center: center,\r\n essential: hasAnimation // this animation is considered essential with respect to prefers-reduced-motion\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { ExchangeRefreshTokenResponse } from '../models/authorization/tokenRefres';\r\nimport { User } from '../models/user';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class OAuthService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/oauth';\r\n }\r\n\r\n public login(username: string, password: string, partnerId: string) {\r\n return this.http.post(\r\n this.accessPointUrl + '/login',\r\n {\r\n partnerId,\r\n password,\r\n username,\r\n },\r\n { headers: this.headers }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class Parametri {\r\n private param = new BehaviorSubject('default');\r\n\r\n getMessage() {\r\n return this.param.asObservable();\r\n }\r\n\r\n updateMessage(message: string) {\r\n this.param.next(message);\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class PricetiersService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/pricetiers';\r\n }\r\n\r\n public getByGroup(groupId) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getByGroupAndFbo(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/group/' + groupId + '/fbo/' + fboId,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public updateFromCustomerMarginsViewModel(customerMarginsViewModel) {\r\n return this.http.post(\r\n this.accessPointUrl + '/customermargins',\r\n customerMarginsViewModel,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { PricingTemplate } from '../models';\r\n\r\n@Injectable()\r\nexport class PricingtemplatesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/pricingtemplates';\r\n }\r\n\r\n public getByFbo(fboId, groupId?) {\r\n return this.http.get(\r\n this.accessPointUrl + '/group/' + groupId + '/fbo/' + fboId,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getWithEmailContentByFbo(fboId, groupId?) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/with-email-content/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getByFboDefaultTemplate(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl +\r\n '/fbodefaultpricingtemplate/group/' +\r\n groupId +\r\n '/fbo/' +\r\n fboId,\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(\r\n this.accessPointUrl + '/' + payload.oid + '/fbo/' + payload.fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getcostpluspricingtemplates(payload) {\r\n return this.http.get(\r\n this.accessPointUrl + '/getcostpluspricingtemplate/' + payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public copy(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/copypricingtemplate/',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public checkdefaultpricingtemplates(payload) {\r\n return this.http.get(\r\n this.accessPointUrl + '/checkdefaulttemplate/' + payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public getFileAttachmentName(pricingTemplateId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fileattachmentname/' +\r\n pricingTemplateId,\r\n {\r\n headers: this.headers,\r\n responseType: 'text',\r\n }\r\n );\r\n }\r\n\r\n public uploadFileAttachment(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/uploadfileattachment/',\r\n payload,\r\n {\r\n headers: this.headers,\r\n responseType: 'text',\r\n }\r\n );\r\n }\r\n\r\n public downloadFileAttachment(pricingTemplateId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fileattachment/' + \r\n pricingTemplateId,\r\n {\r\n headers: this.headers,\r\n responseType: 'text',\r\n }\r\n );\r\n }\r\n\r\n public deleteFileAttachment(pricingTemplateId) {\r\n return this.http.delete(\r\n this.accessPointUrl + '/fileattachment/' + pricingTemplateId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public fixCustomCustomerTypes(groupId, fboId) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fix-custom-customer-types/group/' + groupId + '/fbo/' + fboId,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class RampfeesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/rampfees';\r\n }\r\n\r\n public getForFbo(payload) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public getForAircraft(fboId, tailNumber) {\r\n return this.http.get(\r\n this.accessPointUrl + '/fbo/' + fboId + '/tail/' + tailNumber,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public importrampfees(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/importrampfees',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class RampfeesettingsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/rampfeesettings';\r\n }\r\n\r\n public getForFbo(payload) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { User } from '../../models/user';\r\nimport { localStorageAccessConstant } from '../../constants/LocalStorageAccessConstant';\r\nimport { Router } from '@angular/router';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthenticationService {\r\n public currentUser: Observable;\r\n\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n private currentUserSubject: BehaviorSubject;\r\n private authenticationAccessPointUrl: string;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n @Inject('BASE_URL') baseUrl: string,\r\n private router: Router\r\n ) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/users';\r\n this.authenticationAccessPointUrl = baseUrl + 'api/oauth';\r\n const user: User = JSON.parse(localStorage.getItem('currentUser'));\r\n this.currentUserSubject = new BehaviorSubject(user);\r\n this.currentUser = this.currentUserSubject.asObservable();\r\n }\r\n\r\n get currentUserValue(): User {\r\n return this.currentUserSubject.value;\r\n }\r\n\r\n login(username: string, password: string, remember: boolean): Observable {\r\n return this.http\r\n .post(\r\n this.accessPointUrl + '/authenticate',\r\n {\r\n password,\r\n username,\r\n remember,\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n )\r\n .pipe(\r\n map((user) => {\r\n // login successful if there's a jwt token in the response\r\n if (user) {\r\n if (user.fbo != null)\r\n user.integrationStatus = user.fbo.integrationStatus;\r\n\r\n if (user.role === 7)\r\n user.integrationStatus = true;\r\n\r\n localStorage.setItem(\r\n localStorageAccessConstant.currentUser,\r\n JSON.stringify(user)\r\n );\r\n localStorage.setItem(\r\n localStorageAccessConstant.groupId,\r\n JSON.stringify(user.groupId)\r\n );\r\n\r\n this.currentUserSubject.next(user);\r\n }\r\n\r\n return user;\r\n })\r\n );\r\n }\r\n\r\n getAuthToken(token): Observable {\r\n const tempToken = { accessToken: token };\r\n return this.http\r\n .post(\r\n this.authenticationAccessPointUrl + '/authtoken',\r\n tempToken\r\n )\r\n .pipe(map((authToken) => authToken));\r\n }\r\n\r\n preAuth(token): Observable {\r\n const tempUser: User = new User();\r\n this.currentUserSubject.next(tempUser);\r\n\r\n //call prepare session controller method\r\n\r\n return this.http\r\n .get(this.accessPointUrl + '/prepare-token-auth', {\r\n headers: this.headers,\r\n })\r\n .pipe(\r\n map((user) => {\r\n // login successful if there's a jwt token in the response\r\n if (user) {\r\n\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem(\r\n localStorageAccessConstant.currentUser,\r\n JSON.stringify(user)\r\n );\r\n this.currentUserSubject.next(user);\r\n }\r\n\r\n return user;\r\n })\r\n );\r\n }\r\n\r\n postAuth(): Observable {\r\n return this.http.post(this.accessPointUrl + '/run-login-checks', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n logout(): void {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem(localStorageAccessConstant.currentUser);\r\n localStorage.removeItem(localStorageAccessConstant.impersonatedrole);\r\n localStorage.removeItem(localStorageAccessConstant.fboId);\r\n localStorage.removeItem(localStorageAccessConstant.managerGroupId);\r\n localStorage.removeItem(localStorageAccessConstant.groupId);\r\n localStorage.removeItem(localStorageAccessConstant.conductorFbo);\r\n localStorage.removeItem(localStorageAccessConstant.icao);\r\n localStorage.removeItem(localStorageAccessConstant.accountType);\r\n localStorage.removeItem(localStorageAccessConstant.isNetworkFbo);\r\n localStorage.removeItem(localStorageAccessConstant.isSingleSourceFbo);\r\n\r\n this.currentUserSubject.next(null);\r\n\r\n this.http.post(this.accessPointUrl + '/logout', {}).subscribe(() => {\r\n console.log('User logged out');\r\n });\r\n\r\n this.router.navigate(['/landing-site-layout']);\r\n\r\n }\r\n public refreshToken() {\r\n return this.http.post(\r\n `${this.accessPointUrl}/app-refresh-token`,\r\n {\r\n headers: this.headers,\r\n }\r\n )\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport * as moment from 'moment';\r\n\r\n\r\n@Injectable()\r\nexport class ServiceOrderService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/serviceorder';\r\n }\r\n\r\n //Call the GetServiceOrdersForFbo method in the ServiceOrderController\r\n public getServiceOrdersForFbo(fboId: number, startDateTimeUtc?: Date, endDateTimeUtc?: Date) {\r\n if (startDateTimeUtc != null && endDateTimeUtc != null)\r\n return this.http.get(this.accessPointUrl + '/list/fbo/' + fboId + '?startDateTimeUtc=' + startDateTimeUtc.toISOString() + '&endDate=' + endDateTimeUtc.toISOString());\r\n else\r\n return this.http.get(this.accessPointUrl + '/list/fbo/' + fboId);\r\n }\r\n\r\n //Call the GetServiceOrderByFuelerLinxTransactionId method in the ServiceOrderController\r\n public getServiceOrderByFuelerLinxTransactionIdFboId(fuelerLinxTransactionId: number, fboId: number) {\r\n return this.http.get(this.accessPointUrl + '/fuelerlinxtransactionid/' + fuelerLinxTransactionId + '/fboid/' + fboId);\r\n }\r\n\r\n //Call the GetServiceOrder method in the ServiceOrderController\r\n public getServiceOrderById(serviceOrderId: number) {\r\n return this.http.get(this.accessPointUrl + '/id/' + serviceOrderId);\r\n }\r\n\r\n //Call the GetServiceOrderByAssociatedFuelOrderId method in the ServiceOrderController\r\n public getServiceOrderByAssociatedFuelOrderId(associatedFuelOrderId: number) {\r\n return this.http.get(this.accessPointUrl + '/associatedfuelorderid/' + associatedFuelOrderId);\r\n }\r\n\r\n //Call the PostServiceOrder method in the ServiceOrderController\r\n public createServiceOrder(serviceOrder: any) {\r\n const body = JSON.stringify(serviceOrder);\r\n return this.http.post(this.accessPointUrl, body, { headers: this.headers });\r\n }\r\n\r\n //Call the PutServiceOrder method in the ServiceOrderController\r\n public updateServiceOrder(serviceOrder: any) {\r\n const body = JSON.stringify(serviceOrder);\r\n return this.http.put(this.accessPointUrl, body, { headers: this.headers });\r\n }\r\n\r\n //Call the DeleteServiceOrder method in the ServiceOrderController\r\n public deleteServiceOrder(serviceOrderId: number) {\r\n return this.http.delete(this.accessPointUrl + '/' + serviceOrderId);\r\n }\r\n\r\n //Call the GetServiceOrderItems method in the ServiceOrderController\r\n public getServiceOrderItems(serviceOrderId: number) {\r\n return this.http.get(this.accessPointUrl + '/items/' + serviceOrderId);\r\n }\r\n\r\n //Call the GetServiceOrderItem method in the ServiceOrderController\r\n public getServiceOrderItem(serviceOrderItemId: number) {\r\n return this.http.get(this.accessPointUrl + '/item/' + serviceOrderItemId);\r\n }\r\n\r\n //Call the PostServiceOrderItem method in the ServiceOrderController\r\n public createServiceOrderItem(serviceOrderItem: any) {\r\n const body = JSON.stringify(serviceOrderItem);\r\n return this.http.post(this.accessPointUrl + '/item', body, { headers: this.headers });\r\n }\r\n\r\n //Call the PutServiceOrderItem method in the ServiceOrderController\r\n public updateServiceOrderItem(serviceOrderItem: any) {\r\n const body = JSON.stringify(serviceOrderItem);\r\n return this.http.put(this.accessPointUrl + '/item', body, { headers: this.headers });\r\n }\r\n\r\n//Call the DeleteServiceOrderItem method in the ServiceOrderController\r\n public deleteServiceOrderItem(serviceOrderItemId: number) {\r\n return this.http.delete(this.accessPointUrl + '/item/' + serviceOrderItemId);\r\n } \r\n \r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { FbosServicesAndFeesResponse, ServicesAndFees, ServicesAndFeesResponse } from '../models/services-and-fees/services-and-fees';\r\n\r\n@Injectable()\r\nexport class ServicesAndFeesService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/ServicesAndFees';\r\n }\r\n public getFboServicesAndFees(fboId : number) : Observable {\r\n return this.http.get(this.accessPointUrl + '/fbo/' +fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(fboId: number , payload: ServicesAndFees) : Observable {\r\n return this.http.post(this.accessPointUrl + '/fbo/' + fboId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(servicesAndFeesId: number) : Observable{\r\n return this.http.delete(this.accessPointUrl + '/' + servicesAndFeesId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(fboId: number, payload:ServicesAndFees) : Observable {\r\n return this.http.put(this.accessPointUrl + '/fbo/' + fboId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ServiceTypeResponse } from '../models/services-and-fees/services-and-fees';\r\n\r\n@Injectable()\r\nexport class ServiceTypeService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/FboCustomServiceTypes';\r\n }\r\n public getServiceTypes(fboId : number) : Observable {\r\n return this.http.get(this.accessPointUrl + '/fbo/' +fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(fboId: number , payload: ServiceTypeResponse) : Observable {\r\n return this.http.post(this.accessPointUrl + '/fbo/' + fboId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(serviceTypeId: number) : Observable{\r\n return this.http.delete(this.accessPointUrl + '/' + serviceTypeId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(serviceTypeId: number, payload:ServiceTypeResponse) : Observable {\r\n return this.http.put(this.accessPointUrl + '/' + serviceTypeId, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiResponseWraper } from '../models/apiResponseWraper';\r\nimport { Swim } from '../models/swim';\r\n\r\n@Injectable()\r\nexport class SwimService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/SWIM';\r\n }\r\n\r\n public getArrivals(icao: string,groupId: number,fboId: number): Observable> {\r\n return this.http.get>(`${this.accessPointUrl}/arrivals/${icao}/group/${groupId}/fbo/${fboId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n public getDepartures(icao: string,groupId: number,fboId: number): Observable> {\r\n return this.http.get>(`${this.accessPointUrl}/departures/${icao}/group/${groupId}/fbo/${fboId}`, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort, MatSortHeader } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { PresetDateFilterEnum, SelectedDateFilter } from 'src/app/shared/components/preset-date-filter/preset-date-filter.component';\r\nimport {\r\n ColumnType,\r\n TableSettingsComponent,\r\n} from 'src/app/shared/components/table-settings/table-settings.component';\r\nimport * as XLSX from 'xlsx-js-style';\r\nimport * as moment from 'moment';\r\n\r\nexport type csvFileOptions = {\r\n fileName: string;\r\n sheetName: string;\r\n};\r\n\r\nexport abstract class GridBase {\r\n start: number = 0;\r\n limit: number = 10;\r\n pageSize: number = 30;\r\n selectedRowIndex: number = null;\r\n dataSource: any = new MatTableDataSource([]); //data source to be displayed on scroll\r\n //might be good to set as part of grid base but this involves changing all grid, and remove from function parameters\r\n //think about removing the setVirtualScrollVariables function and set directly in parent \r\n //columns: ColumnType = [];\r\n //tableLocalStorageKey = [];\r\n\r\n //for reports grid\r\n private _icaoFilter: string;\r\n filterStartDate: Date = new Date(\r\n moment().add(-1, 'M').format('MM/DD/YYYY')\r\n );\r\n filterEndDate: Date = new Date(moment().format('MM/DD/YYYY'));\r\n\r\n selectedDateFilter: SelectedDateFilter;\r\n hiddenColumns: string[] = [\r\n 'directOrders',\r\n 'conversionRate',\r\n 'conversionRateTotal',\r\n 'totalOrders',\r\n 'customerBusiness',\r\n 'airportVisits',\r\n ];\r\n\r\n constructor() {\r\n this.selectedDateFilter = {\r\n offsetDate: this.filterStartDate,\r\n limitDate: this.filterEndDate,\r\n selectedFilter : PresetDateFilterEnum.oneMonth\r\n };\r\n this.dataSource.sortingDataAccessor = (item, property) => {\r\n switch (property) {\r\n case 'eta':\r\n return new Date(item.eta);\r\n case 'etd':\r\n return new Date(item.etd);\r\n case 'createdDate':\r\n return new Date(item.createdDate);\r\n case 'fuelOn':\r\n return item.fuelOn == 'Arrival'\r\n ? new Date(item.eta)\r\n : new Date(item.etd);\r\n default:\r\n if (typeof item[property] === 'string') {\r\n return item[property].toLocaleLowerCase();\r\n }\r\n return item[property];\r\n }\r\n };\r\n }\r\n get icaoFilter(): string {\r\n return this._icaoFilter;\r\n }\r\n set icaoFilter(value: string) {\r\n this._icaoFilter = value;\r\n }\r\n onTableScroll(e): void {\r\n const tableViewHeight = e.target.offsetHeight; // viewport\r\n const tableScrollHeight = e.target.scrollHeight; // length of all table\r\n const scrollLocation = e.target.scrollTop; // how far user scrolled\r\n\r\n // If the user has scrolled within 200px of the bottom, add more data\r\n const buffer = 200;\r\n const limit = tableScrollHeight - tableViewHeight - buffer;\r\n if (this.pageSize > this.dataSource.data.length) return;\r\n if (scrollLocation > limit) {\r\n this.updateIndex();\r\n this.setPagination(this.pageSize);\r\n }\r\n }\r\n updateIndex() {\r\n this.start = this.pageSize;\r\n this.pageSize = this.limit + this.start;\r\n }\r\n setVirtualScrollVariables(\r\n paginator: MatPaginator,\r\n sort: MatSort,\r\n data: any[]\r\n ) {\r\n this.dataSource.paginator = paginator;\r\n this.dataSource.sort = sort;\r\n this.dataSource.data = data;\r\n this.setPagination(this.pageSize);\r\n }\r\n setPagination(paginationSize: number) {\r\n this.dataSource.paginator.pageSize = paginationSize;\r\n this.dataSource.paginator.page.emit({\r\n length: 1,\r\n pageIndex: 0,\r\n pageSize: paginationSize,\r\n });\r\n }\r\n onPageChanged(event: any) {\r\n // localStorage.setItem('pageIndex', event.pageIndex);\r\n // sessionStorage.setItem(\r\n // 'pageSizeValue',\r\n // this.dataSource.paginator.pageSize.toString()\r\n // );\r\n // this.selectAll = false;\r\n // forEach(this.dataSource, (data) => {\r\n // data.selectAll = false;\r\n // });\r\n }\r\n exportCsvFile(\r\n columns: ColumnType[],\r\n fileName: string,\r\n sheetName: string,\r\n computePropertyFnc: any,\r\n exportSelectedData: boolean = false\r\n ) {\r\n let cols = columns.filter((col) =>\r\n col.id == 'selectAll' ? false : !col.hidden\r\n );\r\n\r\n let dataToExport = exportSelectedData\r\n ? this.dataSource.filteredData.filter((x) => x.selectAll)\r\n : this.dataSource.filteredData;\r\n\r\n let exportData = dataToExport.map((item) => {\r\n let row = {};\r\n cols.forEach((col) => {\r\n let calculatedText = !computePropertyFnc\r\n ? ''\r\n : computePropertyFnc(item, col.id);\r\n row[col.name] = calculatedText ? calculatedText : item[col.id];\r\n });\r\n return row;\r\n });\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(exportData); // converts a DOM TABLE element to a worksheet\r\n\r\n // Make headers bold\r\n const headerStyle: XLSX.CellStyle = {\r\n font: { bold: true },\r\n alignment: {\r\n horizontal: 'center',\r\n wrapText: true,\r\n vertical: 'center',\r\n },\r\n };\r\n\r\n // Get the range of cells in the first row (headers)\r\n const range = XLSX.utils.decode_range(ws['!ref']);\r\n for (let colIndex = range.s.c; colIndex <= range.e.c; colIndex++) {\r\n const cellAddress = { c: colIndex, r: range.s.r }; // First row index is range.s.r\r\n\r\n if (ws[XLSX.utils.encode_cell(cellAddress)]) {\r\n ws[XLSX.utils.encode_cell(cellAddress)].s = headerStyle;\r\n }\r\n }\r\n\r\n const wb: XLSX.WorkBook = XLSX.utils.book_new();\r\n XLSX.utils.book_append_sheet(wb, ws, sheetName);\r\n\r\n /* save to file */\r\n XLSX.writeFile(wb, fileName + '.xlsx');\r\n }\r\n public getClientSavedColumns(\r\n tableLocalStorageKey: string,\r\n initialColumns: ColumnType[]\r\n ): ColumnType[] {\r\n let localStorageColumns: string =\r\n localStorage.getItem(tableLocalStorageKey);\r\n\r\n if (!localStorageColumns){\r\n initialColumns.sort((a, b) => {\r\n var indexOfA = initialColumns.findIndex((x) => x.index == a.index);\r\n var indexOfB = initialColumns.findIndex((x) => x.index == b.index);\r\n return indexOfA - indexOfB;\r\n });\r\n return initialColumns;\r\n }\r\n\r\n let storedCols: ColumnType[] = JSON.parse(localStorageColumns);\r\n\r\n initialColumns.sort((a, b) => {\r\n var indexOfA = storedCols.findIndex((x) => x.id == a.id);\r\n var indexOfB = storedCols.findIndex((x) => x.id == b.id);\r\n return indexOfA - indexOfB;\r\n });\r\n\r\n return initialColumns.map((initialCol) => {\r\n const storedColumn = storedCols.find(\r\n (storedCol) => initialCol.id === storedCol.id\r\n );\r\n if (storedColumn) {\r\n initialCol.hidden = storedColumn.hidden;\r\n }\r\n return initialCol;\r\n });\r\n }\r\n\r\n public openSettingsDialog(\r\n tableSettingsDialog: MatDialog,\r\n columns: ColumnType[],\r\n onCompletion\r\n ) {\r\n const dialogRef = tableSettingsDialog.open(TableSettingsComponent, {\r\n data: columns,\r\n });\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n columns = [...result];\r\n\r\n if (onCompletion) onCompletion(result);\r\n });\r\n }\r\n\r\n public saveSettings(key: string, columns: ColumnType[]) {\r\n localStorage.setItem(key, JSON.stringify(columns));\r\n }\r\n\r\n public refreshSort(sort: MatSort, columns: ColumnType[]) {\r\n if (!sort) return;\r\n const sortedColumn = columns.find(\r\n (column) => !column.hidden && column.sort\r\n );\r\n sort.sort({\r\n disableClear: false,\r\n id: null,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n sort.sort({\r\n disableClear: false,\r\n id: sortedColumn?.id,\r\n start: sortedColumn?.sort || 'asc',\r\n });\r\n (\r\n sort.sortables.get(sortedColumn?.id) as MatSortHeader\r\n )?._setAnimationTransitionState({ toState: 'active' });\r\n }\r\n public getFilteredTableColumns(columns) {\r\n return columns\r\n .filter((column) => !column.hidden)\r\n .map((column) => column.id);\r\n }\r\n // todo: methods used on grids, need to be move into an utils service since not all grids use it\r\n public getEndOfDayTime(date: Date, utcDate: boolean = false): Date {\r\n return utcDate\r\n ? new Date(\r\n Date.UTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 23,\r\n 59,\r\n 59\r\n )\r\n )\r\n : new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 23,\r\n 59,\r\n 59\r\n );\r\n }\r\n public getStartOfDayTime(date: Date, utcDate: boolean = false): Date {\r\n return utcDate\r\n ? new Date(\r\n Date.UTC(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 0,\r\n 0,\r\n 0\r\n )\r\n )\r\n : new Date(\r\n date.getFullYear(),\r\n date.getMonth(),\r\n date.getDate(),\r\n 0,\r\n 0,\r\n 0\r\n );\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TagsService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/customertags';\r\n }\r\n\r\n public getTags(payload) {\r\n return this.http.get(this.accessPointUrl, {\r\n headers: this.headers,\r\n params: { GroupId: payload.groupId, CustomerId: payload.customerId, IsFuelerLinx: payload.isFuelerLinx }\r\n });\r\n }\r\n\r\n public getGroupTags(payload) {\r\n return this.http.get(this.accessPointUrl + \"/groups/\" + payload, {\r\n headers: this.headers\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class TemporaryAddOnMarginService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/TemproraryAddOnMargin';\r\n }\r\n\r\n public get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.id, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n public update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.id, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n}\r\n","import { FileInfo, SelectedEventArgs } from \"@syncfusion/ej2-angular-inputs\";\r\nimport { ImageDropEventArgs } from \"@syncfusion/ej2-angular-richtexteditor\";\r\nimport { FileHelper } from \"src/app/helpers/files/file.helper\";\r\n\r\nexport abstract class EditorBase {\r\n constructor(protected fileHelper: FileHelper){\r\n }\r\n public onImageSelected = (args: SelectedEventArgs) => {\r\n let lastImage : FileInfo = args.filesData[args.filesData.length - 1];\r\n if (!this.fileHelper.isValidImageSize(lastImage.size)) {\r\n args.cancel = true;\r\n }\r\n }\r\n onImageDrop(event : ImageDropEventArgs){\r\n //simulate disable drag and drop\r\n event.cancel = true;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\n@Injectable()\r\nexport class UserService {\r\n private headers: HttpHeaders;\r\n private accessPointUrl: string;\r\n\r\n constructor(private http: HttpClient, @Inject('BASE_URL') baseUrl: string) {\r\n this.headers = new HttpHeaders({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n });\r\n this.accessPointUrl = baseUrl + 'api/users';\r\n }\r\n\r\n getCurrentUser() {\r\n return this.http.get(this.accessPointUrl + '/current', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n get(payload) {\r\n return this.http.get(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n add(payload) {\r\n return this.http.post(this.accessPointUrl, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n remove(payload) {\r\n return this.http.delete(this.accessPointUrl + '/' + payload.oid, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n update(payload) {\r\n return this.http.put(this.accessPointUrl + '/' + payload.oid, payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getForGroupId(groupId) {\r\n return this.http.get(this.accessPointUrl + '/group/' + groupId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getForFboId(fboId) {\r\n return this.http.get(this.accessPointUrl + '/fbo/' + fboId, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n getRoles() {\r\n return this.http.get(this.accessPointUrl + '/roles', {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n requestResetPassword(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/request-reset-password',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n resetPassword(payload) {\r\n return this.http.post(\r\n this.accessPointUrl + '/reset-password',\r\n payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n validateResetPasswordToken(token: string) {\r\n return this.http.post(\r\n this.accessPointUrl + '/validate-reset-password-token',\r\n {\r\n token: decodeURIComponent(token),\r\n },\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n\r\n updatePassword(payload) {\r\n return this.http.post(this.accessPointUrl + '/newpassword', payload, {\r\n headers: this.headers,\r\n });\r\n }\r\n\r\n checkemailexists(payload) {\r\n return this.http.get(\r\n this.accessPointUrl + '/checkemailexists/' + payload,\r\n {\r\n headers: this.headers,\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SnackBarService {\r\n \r\n constructor(private snackBar: MatSnackBar) { }\r\n public showErrorSnackBar(message: string, duration = 2000): void {\r\n this.snackBar.open(\r\n message,\r\n '',\r\n {\r\n duration: duration,\r\n panelClass: ['error-snackbar'],\r\n }\r\n );\r\n }\r\n public showSuccessSnackBar(message: string,duration = 2000): void {\r\n this.snackBar.open(\r\n message,\r\n '',\r\n {\r\n duration: duration,\r\n panelClass: ['blue-snackbar'],\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, Inject, Input, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\nimport { AuthenticationService } from 'src/app/services/security/authentication.service';\r\nimport { DocumentService } from 'src/app/services/documents.service';\r\nimport { UserService } from 'src/app/services/user.service';\r\n\r\n@Component({\r\n selector: 'app-Agreements-and-documents-modal',\r\n templateUrl: './Agreements-and-documents-modal.component.html',\r\n styleUrls: ['./Agreements-and-documents-modal.component.scss']\r\n})\r\nexport class AgreementsAndDocumentsModalComponent implements OnInit {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private router: Router,\r\n private authenticationService: AuthenticationService,\r\n private documentService: DocumentService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) { }\r\n\r\n ngOnInit() {\r\n }\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n accept() {\r\n this.documentService.acceptDocument(this.data.userId,this.data.eulaDocument.oid).subscribe(\r\n (data: any) => {\r\n this.dialogRef.close(true);\r\n },\r\n (err: any) => {\r\n console.log(err);\r\n this.dialogRef.close(false);\r\n }\r\n );\r\n }\r\n decline(){\r\n this.dialogRef.close(false);\r\n this.authenticationService.logout();\r\n }\r\n}\r\n","

Notice of Changes to Terms and Conditions

\r\n
\r\n
\r\n By continuing to use FBOLinx you are consenting to the\r\n Terms and our\r\n Privacy Policy and\r\n Cookie Policy.\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n Accept\r\n \r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n FormBuilder,\r\n FormControl,\r\n FormGroup,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport * as _ from 'lodash';\r\n\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { SystemcontactsNewContactModalComponent } from '../../../pages/contacts/systemcontacts-new-contact-modal/systemcontacts-new-contact-modal.component';\r\nimport { ContactsService } from '../../../services/contacts.service';\r\nimport { FbocontactsService } from '../../../services/fbocontacts.service';\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { FbopreferencesService } from '../../../services/fbopreferences.service';\r\nimport { UserService } from '../../../services/user.service';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { SnackBarService } from 'src/app/services/utils/snackBar.service';\r\n\r\nexport interface AccountProfileDialogData {\r\n oid: number;\r\n firstName: string;\r\n lastName: string;\r\n username: string;\r\n password: string;\r\n role: number;\r\n fboId: number;\r\n groupId: number;\r\n newPassword: string;\r\n confirmPassword: string;\r\n enableJetA: boolean;\r\n enableSaf: boolean;\r\n}\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'app-account-profile',\r\n styleUrls: ['./account-profile.component.scss'],\r\n templateUrl: './account-profile.component.html',\r\n})\r\nexport class AccountProfileComponent {\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @Output() editContactClicked = new EventEmitter();\r\n @Output() newContactClicked = new EventEmitter();\r\n @Output() productChanged = new EventEmitter();\r\n\r\n\r\n // Members\r\n fboInfo: any;\r\n fboPreferencesData: any;\r\n contactsData: any[];\r\n currentContact: any;\r\n availableroles: any[];\r\n systemContactsForm: FormGroup;\r\n emailDistributionForm: FormGroup;\r\n productsForm: FormGroup;\r\n companyForm: FormGroup;\r\n theFile: any = null;\r\n logoUrl: string;\r\n isUploadingLogo: boolean;\r\n contactsDataSource: MatTableDataSource = null;\r\n public copyAllAlerts = false;\r\n public copyAllOrders = false;\r\n public isDecimalPrecisionInRange: boolean = true;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: AccountProfileDialogData,\r\n private sharedService: SharedService,\r\n private contactsService: ContactsService,\r\n private fboContactsService: FbocontactsService,\r\n private fbosService: FbosService,\r\n private fboPreferencesService: FbopreferencesService,\r\n private fboPricesService: FbopricesService,\r\n private usersService: UserService,\r\n private formBuilder: FormBuilder,\r\n public newContactDialog: MatDialog,\r\n private snackBarService: SnackBarService\r\n ) {\r\n this.systemContactsForm = this.formBuilder.group({\r\n fuelDeskEmail: new FormControl('', [\r\n Validators.required,\r\n Validators.email,\r\n ]),\r\n });\r\n this.emailDistributionForm = this.formBuilder.group({\r\n replyTo: new FormControl('', [\r\n Validators.required,\r\n Validators.email,\r\n ]),\r\n senderAddress: new FormControl('', [\r\n Validators.required,\r\n Validators.pattern('[a-zA-Z0-9-]*'),\r\n ]),\r\n });\r\n this.productsForm = new FormGroup({\r\n enableJetA: new FormControl(),\r\n enableSaf: new FormControl()\r\n });\r\n\r\n this.companyForm = new FormGroup({\r\n orderNotifications: new FormControl(),\r\n directOrderNotifications: new FormControl(),\r\n });\r\n\r\n\r\n this.loadFboInfo();\r\n this.loadFboPreferences();\r\n this.loadAvailableRoles();\r\n }\r\n\r\n get fuelDeskEmail() {\r\n return this.systemContactsForm.get('fuelDeskEmail');\r\n }\r\n\r\n get replyTo() {\r\n return this.emailDistributionForm.get('replyTo');\r\n }\r\n\r\n get senderAddress() {\r\n return this.emailDistributionForm.get('senderAddress');\r\n }\r\n\r\n get isCsr() {\r\n return this.sharedService.isCsr;\r\n }\r\n\r\n // Methods\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n contactDeleted(record) {\r\n this.fboContactsService.remove(record).subscribe(() => {\r\n this.fboContactsService\r\n .getForFbo(this.fboInfo)\r\n .subscribe((data: any) => (this.contactsData = data));\r\n });\r\n }\r\n\r\n saveEditContactClicked() {\r\n this.contactsService.update(this.currentContact ).subscribe(() => {\r\n this.currentContact = null;\r\n });\r\n }\r\n\r\n cancelEditContactClicked() {\r\n this.currentContact = null;\r\n }\r\n\r\n onSaveSystemContacts() {\r\n if (this.systemContactsForm.valid) {\r\n this.fboInfo.fuelDeskEmail =\r\n this.systemContactsForm.value.fuelDeskEmail;\r\n this.fbosService.update(this.fboInfo).subscribe(() => {\r\n this.fboContactsService\r\n .updateFuelvendor({\r\n fboId: this.fboInfo.oid,\r\n })\r\n .subscribe(() => {});\r\n });\r\n }\r\n }\r\n\r\n onSaveEmailDistribution() {\r\n if (this.emailDistributionForm.valid) {\r\n this.fboInfo.SenderAddress =\r\n this.emailDistributionForm.value.senderAddress;\r\n this.fboInfo.ReplyTo = this.emailDistributionForm.value.replyTo;\r\n this.fbosService.update(this.fboInfo).subscribe(() => {\r\n this.dialogRef.close();\r\n });\r\n }\r\n }\r\n\r\n onFileChange(event) {\r\n this.theFile = null;\r\n if (event.target.files && event.target.files.length > 0) {\r\n // Set theFile property\r\n this.theFile = event.target.files[0];\r\n }\r\n }\r\n\r\n uploadFile(): void {\r\n if (this.theFile != null) {\r\n this.isUploadingLogo = true;\r\n this.readAndUploadFile(this.theFile);\r\n }\r\n }\r\n\r\n deleteFile(): void {\r\n this.fbosService\r\n .deleteLogo(this.fboInfo.oid)\r\n .subscribe((logoData: any) => {\r\n this.logoUrl = '';\r\n });\r\n }\r\n\r\n onProductsChange(product) {\r\n if (product == \"JetA\")\r\n this.fboPreferencesData.enableJetA = !this.productsForm.value.enableJetA;\r\n else\r\n this.fboPreferencesData.enableSaf = !this.productsForm.value.enableSaf;\r\n\r\n this.fboPreferencesService.update(this.fboPreferencesData).subscribe(() => {\r\n this.fboPricesService.removePricing(this.sharedService.currentUser.fboId, product).subscribe(() => {\r\n this.productChanged.emit(this.fboPreferencesData);\r\n });\r\n });\r\n }\r\n\r\n onOrderNotificationsChange() {\r\n this.fboPreferencesData.OrderNotificationsEnabled = !this.companyForm.value.orderNotifications;\r\n\r\n this.fboPreferencesService.update(this.fboPreferencesData).subscribe((data: any) => {\r\n console.log(data);\r\n }, (error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n onDirectOrderNotificationsChange() {\r\n this.fboPreferencesData.DirectOrderNotificationsEnabled = !this.companyForm.value.directOrderNotifications;\r\n\r\n this.fboPreferencesService.update(this.fboPreferencesData).subscribe((data: any) => {\r\n console.log(data);\r\n }, (error: any) => {\r\n console.log(error);\r\n });\r\n }\r\n onDecimalPrecisionchange() {\r\n this.isDecimalPrecisionInRange = this.fboPreferencesData.decimalPrecision > 1 && this.fboPreferencesData.decimalPrecision <= 12;\r\n\r\n if(!this.isDecimalPrecisionInRange)\r\n return;\r\n\r\n this.fboPreferencesService.update(this.fboPreferencesData).subscribe((data: any) => {\r\n console.log(data);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.decimalPrecision, this.fboPreferencesData.decimalPrecision);\r\n this.snackBarService.showSuccessSnackBar(`Changes Saved`);\r\n }, (error: any) => {\r\n console.log(error);\r\n this.snackBarService.showErrorSnackBar(`Error saving changes, try again`);\r\n });\r\n }\r\n public newRecord(e: any) {\r\n e.preventDefault();\r\n\r\n const dialogRef = this.newContactDialog.open(\r\n SystemcontactsNewContactModalComponent,\r\n {\r\n data: {},\r\n height: '300px',\r\n }\r\n );\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n const payload = {\r\n ...result,\r\n fboId: this.sharedService.currentUser.fboId,\r\n };\r\n this.fboContactsService\r\n .addnewcontact(payload)\r\n .subscribe((newFbocontact) => {\r\n this.contactsData = null;\r\n this.fboContactsService\r\n .getForFbo(this.fboInfo)\r\n .subscribe((data: any) => {\r\n this.contactsData = data;\r\n });\r\n this.fboContactsService\r\n .updateFuelvendor(payload)\r\n .subscribe();\r\n });\r\n });\r\n }\r\n\r\n // Private Methods\r\n private readAndUploadFile(theFile: any) {\r\n const file = {\r\n ContentType: theFile.type,\r\n\r\n FboId: this.fboInfo.oid,\r\n\r\n FileData: null,\r\n // Set File Information\r\n FileName: theFile.name,\r\n };\r\n\r\n // Use FileReader() object to get file to upload\r\n // NOTE: FileReader only works with newer browsers\r\n const reader = new FileReader();\r\n\r\n // Setup onload event for reader\r\n reader.onload = () => {\r\n // Store base64 encoded representation of file\r\n file.FileData = reader.result.toString();\r\n\r\n // POST to server\r\n this.fbosService.uploadLogo(file).subscribe((resp: any) => {\r\n this.isUploadingLogo = false;\r\n this.logoUrl = resp.message;\r\n });\r\n };\r\n\r\n // Read the file\r\n reader.readAsDataURL(theFile);\r\n }\r\n\r\n private loadFboInfo(): void {\r\n if (\r\n !this.sharedService.currentUser.fboId ||\r\n this.sharedService.currentUser.fboId === 0\r\n ) {\r\n return;\r\n }\r\n this.fbosService\r\n .get({\r\n oid: this.sharedService.currentUser.fboId,\r\n })\r\n .subscribe((fboData: any) => {\r\n this.systemContactsForm.setValue({\r\n fuelDeskEmail: fboData.fuelDeskEmail,\r\n });\r\n this.emailDistributionForm.setValue({\r\n replyTo: fboData.replyTo,\r\n senderAddress: fboData.senderAddress,\r\n });\r\n this.fboInfo = fboData;\r\n this.fboContactsService\r\n .getForFbo(this.fboInfo)\r\n .subscribe((data: any) => {\r\n this.contactsData = data;\r\n this.fbosService\r\n .getLogo(this.fboInfo.oid)\r\n .subscribe((logoData: any) => {\r\n this.logoUrl = logoData.message;\r\n });\r\n });\r\n });\r\n }\r\n\r\n private loadFboPreferences(): void {\r\n if (\r\n !this.sharedService.currentUser.fboId ||\r\n this.sharedService.currentUser.fboId === 0\r\n ) {\r\n return;\r\n }\r\n this.fboPreferencesService\r\n .getForFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((fboPreferencesData: any) => {\r\n this.fboPreferencesData = fboPreferencesData;\r\n this.fboPreferencesData.decimalPrecision = fboPreferencesData.decimalPrecision ?? 4;\r\n\r\n this.productsForm.setValue({\r\n enableJetA: this.fboPreferencesData.enableJetA,\r\n enableSaf: this.fboPreferencesData.enableSaf\r\n });\r\n this.companyForm.setValue({\r\n orderNotifications: this.fboPreferencesData.orderNotificationsEnabled ?? true,\r\n directOrderNotifications: this.fboPreferencesData.directOrderNotificationsEnabled ?? true\r\n });\r\n });\r\n }\r\n\r\n private loadAvailableRoles() {\r\n this.usersService.getRoles().subscribe((data: any) => {\r\n let supportedRoleValues = [4];\r\n this.availableroles = [];\r\n if (this.data.fboId > 0) {\r\n supportedRoleValues = [1, 4, 5];\r\n } else if (this.data.groupId > 0) {\r\n supportedRoleValues = [2];\r\n }\r\n for (const role of data) {\r\n if (supportedRoleValues.indexOf(role.value) > -1) {\r\n this.availableroles.push(role);\r\n }\r\n }\r\n\r\n if (!this.data.role || this.data.role === 0) {\r\n if (this.availableroles.length > 1) {\r\n this.data.role =\r\n this.availableroles[\r\n this.availableroles.length - 1\r\n ].value;\r\n } else {\r\n this.data.role = this.availableroles[0].value;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","

\r\n Account Profile\r\n \r\n close\r\n \r\n

\r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \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 enter a valid email address.\r\n
\r\n
\r\n
\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 0 &&\r\n data.newPassword &&\r\n data.newPassword.length > 0 &&\r\n data.newPassword != data.confirmPassword\r\n \"\r\n class=\"text-danger\"\r\n >\r\n Passwords must match\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n

\r\n Add contacts at your FBO to copy on relevant system\r\n emails, such as fuel requests.\r\n

\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 enter a valid email 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 @FBOLinx.com\r\n
\r\n Please enter with no spaces.\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Please enter a valid email 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
Receive FuelerLinx contract fuel order notifications
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Direct Orders Notifications
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \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
\r\n
\r\n
\r\n
JetA
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
Sustainable Fuel (SAF)
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
Number of decimals to display
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n Decimal Precision must be between 2 and 12\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject, OnInit, SimpleChanges } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FlightWatchHistorical } from 'src/app/models/flight-watch-historical';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomersListType } from '../../../models/customer';\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\n\r\nexport interface NewCustomerAircraftDialogData {\r\n tailNumber: string;\r\n customers: CustomersListType[];\r\n}\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'app-aircraft-assign-modal',\r\n styleUrls: ['./aircraft-assign-modal.component.scss'],\r\n templateUrl: './aircraft-assign-modal.component.html',\r\n})\r\nexport class AircraftAssignModalComponent implements OnInit {\r\n // Public Members\r\n public aircraftSizes: Array;\r\n public aircraftTypes: Array;\r\n public selectedAircraft: any;\r\n public loading: boolean;\r\n public selectedCompany: number | string;\r\n public filteredCostumers: any[] = [];\r\n public isCustomerEditable: boolean = false;\r\n public customerFilter: string = '';\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: NewCustomerAircraftDialogData,\r\n private aircraftsService: AircraftsService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private sharedService: SharedService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.aircraftsService\r\n .getAll()\r\n .subscribe((data: any) => (this.aircraftTypes = data));\r\n this.aircraftsService\r\n .getAircraftSizes()\r\n .subscribe((data: any) => (this.aircraftSizes = data));\r\n this.filteredCostumers = this.data.customers;\r\n this.selectedCompany = this.data.customers[0].companyId;\r\n }\r\n public onClose() {\r\n this.dialogRef.close();\r\n }\r\n addCustomCustomer(){\r\n this.isCustomerEditable = !this.isCustomerEditable;\r\n this.selectedCompany = this.customerFilter;\r\n }\r\n onFilter(event: any) {\r\n this.isCustomerEditable = false;\r\n this.filteredCostumers = this.data.customers.filter((c) => c.company.toLowerCase().includes(event.filter.toLowerCase()));\r\n this.customerFilter = event.filter;\r\n\r\n }\r\n public onSubmit() {\r\n this.loading = true;\r\n const payload: any = {\r\n aircraftId: this.selectedAircraft.aircraftId,\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n size: this.selectedAircraft.size,\r\n tailNumber: this.data.tailNumber,\r\n isFavoriteAircraft : false\r\n };\r\n if (typeof this.selectedCompany === 'string') {\r\n payload.customer = this.selectedCompany;\r\n this.customerAircraftsService\r\n .createAircraftWithCustomer(payload)\r\n .subscribe((result: any) => {\r\n this.data.customers.push(\r\n {\r\n customerInfoByGroupID : result.customerInfoByGroup.oid,\r\n companyId : result.customerInfoByGroup.customerId,\r\n company : result.customerInfoByGroup.company\r\n }\r\n );\r\n\r\n this.dialogRef.close({\r\n aircraftType:\r\n this.selectedAircraft.make +\r\n ' / ' +\r\n this.selectedAircraft.model,\r\n company: result.customerInfoByGroup.company,\r\n companyId: result.customerInfoByGroup.customerId,\r\n customerInfoByGroupID: result.customerInfoByGroup.oid,\r\n customerAircraftId: result.customerAircraft.oid,\r\n } as Partial);\r\n });\r\n } else {\r\n payload.customerId = this.selectedCompany;\r\n this.customerAircraftsService.add(payload , this.sharedService.currentUser.oid, this.sharedService.currentUser.fboId ).subscribe((result: any) => {\r\n const selectedCompany = this.data.customers.find(\r\n (customer) => customer.companyId === this.selectedCompany\r\n );\r\n this.dialogRef.close({\r\n aircraftType:\r\n this.selectedAircraft.make +\r\n ' / ' +\r\n this.selectedAircraft.model,\r\n company: selectedCompany.company,\r\n companyId: selectedCompany.companyId,\r\n customerInfoByGroupID:\r\n selectedCompany.customerInfoByGroupID,\r\n customerAircraftId: result.oid,\r\n } as Partial);\r\n });\r\n }\r\n }\r\n isSubmitDisabled(): boolean {\r\n return this.loading || !this.data.tailNumber || !this.selectedAircraft || !this.selectedCompany || this.selectedCompany.toString().trim() === '';\r\n }\r\n}\r\n","

Add Aircraft To Customer

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ aircraftType.make }} {{ aircraftType.model }}\r\n \r\n \r\n \r\n
\r\n
\r\n Customer:  \r\n \r\n \r\n
\r\n <Add Custom>\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n \r\n {{ loading ? \"\" : \"Add Aircraft\" }}\r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\r\nimport { Observable, of } from 'rxjs';\r\nimport {\r\n catchError,\r\n debounceTime,\r\n map,\r\n startWith,\r\n switchMap,\r\n} from 'rxjs/operators';\r\n\r\n// Services\r\nimport { AcukwikairportsService } from '../../../services/acukwikairports.service';\r\n\r\nexport interface AirportAutoCompleteData {\r\n icao: string;\r\n iata: string;\r\n fullAirportName: string;\r\n}\r\n\r\nexport declare type AirportAutoCompleteDataSource = AirportAutoCompleteData[];\r\n\r\n@Component({\r\n selector: 'app-airport-autocomplete',\r\n styleUrls: ['./airport-autocomplete.component.scss'],\r\n templateUrl: './airport-autocomplete.component.html',\r\n})\r\nexport class AirportAutocompleteComponent implements OnInit {\r\n @Input() airportContainerModel: any;\r\n @Output() valueChange = new EventEmitter();\r\n\r\n searchControl: FormControl = new FormControl();\r\n filteredAirports: Observable;\r\n airports: AirportAutoCompleteData[] = null;\r\n isLoading = false;\r\n airportModel = null;\r\n\r\n constructor(private acukwikAirportsService: AcukwikairportsService) {}\r\n\r\n ngOnInit() {\r\n this.searchControl.setValue(this.airportModel ? this.airportModel : '');\r\n this.filteredAirports = this.searchControl.valueChanges.pipe(\r\n startWith(''),\r\n // delay emits\r\n debounceTime(300),\r\n // use switch map so as to cancel previous subscribed events, before creating new once\r\n switchMap((value) => {\r\n if (value !== '') {\r\n // lookup from github\r\n return this.lookup(value);\r\n } else {\r\n // if no value is pressent, return null\r\n return of(null);\r\n }\r\n })\r\n );\r\n }\r\n\r\n lookup(value: any): Observable {\r\n if (typeof value === 'object') {\r\n return of(null);\r\n }\r\n return this.acukwikAirportsService.search(value).pipe(\r\n // map the item property of the github results as our return object\r\n map((results: AirportAutoCompleteDataSource) => results),\r\n // catch errors\r\n catchError((_) => of(null))\r\n );\r\n }\r\n\r\n public displayFn(airport?: AirportAutoCompleteData): string | undefined {\r\n return airport\r\n ? airport.icao + ' - ' + airport.fullAirportName\r\n : undefined;\r\n }\r\n\r\n public selected(airport: MatAutocompleteSelectedEvent) {\r\n this.airportModel = airport.option.value;\r\n // send to parent or do whatever you want to do\r\n this.valueChange.emit(airport.option.value);\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n {{ airport.icao }} - {{ airport.fullAirportName }}\r\n \r\n \r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n Output,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { isEqual } from 'lodash';\r\n\r\nexport interface CloseConfirmationData {\r\n description: string;\r\n customTitle: string;\r\n customText: string;\r\n ok: string;\r\n cancel: string;\r\n}\r\n\r\n@Component({\r\n providers: [\r\n {\r\n multi: true,\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: AutocompleteSearchComponent,\r\n },\r\n ],\r\n selector: 'app-autocomplete-search',\r\n styleUrls: ['./autocomplete-search.component.scss'],\r\n templateUrl: './autocomplete-search.component.html',\r\n})\r\nexport class AutocompleteSearchComponent\r\n implements OnChanges, ControlValueAccessor\r\n{\r\n @Input() label: string;\r\n @Input() optionValue: string | Array;\r\n @Input() options: Array;\r\n @Input() displayFn: (value: any) => any;\r\n @Input() disabled = false;\r\n @Input() required = false;\r\n @Input() filter: string = '';\r\n @Input() panelWidth: string | number;\r\n @Output() selectionChanged = new EventEmitter();\r\n @Output() filterChanged = new EventEmitter();\r\n\r\n filteredOptions: Array = [];\r\n option: any;\r\n\r\n onChange = (val: any) => {};\r\n onTouched = () => {};\r\n\r\n constructor() {}\r\n\r\n writeValue(obj: any): void {\r\n this.option = obj;\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.options &&\r\n changes.options.currentValue &&\r\n !isEqual(\r\n changes.options.currentValue,\r\n changes.options.previousValue\r\n )\r\n ) {\r\n this.filteredOptions = [...this.options];\r\n }\r\n }\r\n\r\n onFilterChanged() {\r\n this.filteredOptions = this.options.filter((option) => {\r\n if (!this.filter) {\r\n return true;\r\n }\r\n if (typeof this.optionValue === 'string') {\r\n return option[this.optionValue as string]\r\n .toLowerCase()\r\n .includes(this.filter.toLowerCase());\r\n }\r\n if (!this.optionValue) {\r\n return option.toLowerCase().includes(this.filter.toLowerCase());\r\n }\r\n if (Array.isArray(this.optionValue)) {\r\n return this.optionValue\r\n .map((ov) => option[ov])\r\n .join(' ')\r\n .toLowerCase()\r\n .includes(this.filter.toLowerCase());\r\n }\r\n return false;\r\n });\r\n this.filterChanged.emit(this.filter);\r\n }\r\n\r\n optionSelected(event) {\r\n this.option = event.option.value;\r\n this.onChange(event.option.value);\r\n this.selectionChanged.emit(event.option.value);\r\n }\r\n\r\n renderOption(option) {\r\n if (typeof this.optionValue === 'string') {\r\n return option[this.optionValue as string];\r\n }\r\n if (!this.optionValue) {\r\n return option;\r\n }\r\n return this.optionValue.map((ov) => option[ov]).join(' ');\r\n }\r\n}\r\n","\r\n {{ label }}\r\n \r\n \r\n \r\n {{ renderOption(option) }}\r\n \r\n \r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface CloseConfirmationData {\r\n description: string;\r\n customTitle: string;\r\n customText: string;\r\n ok: string;\r\n cancel: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-close-confirmation',\r\n styleUrls: ['./close-confirmation.component.scss'],\r\n templateUrl: './close-confirmation.component.html',\r\n})\r\nexport class CloseConfirmationComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: CloseConfirmationData\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Discard Changes?

\r\n

{{ data.customTitle }}

\r\n
\r\n
\r\n You are about to close this {{ data.description }}. Are you sure?\r\n
\r\n
\r\n {{ data.customText }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ data.ok }}\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport {\r\n MAT_DIALOG_DATA,\r\n MatDialog,\r\n MatDialogRef,\r\n} from '@angular/material/dialog';\r\n// Services\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'app-copy-confirmation',\r\n styleUrls: ['./copy-confirmation.component.scss'],\r\n templateUrl: './copy-confirmation.component.html',\r\n})\r\nexport class CopyConfirmationComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n public closeConfirmationDialog: MatDialog,\r\n public router: Router,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n // Prevent modal close on outside click\r\n dialogRef.disableClose = true;\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close('cancel');\r\n }\r\n}\r\n","

Copy Template Confirmation

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n file_copy\r\n Copy\r\n \r\n  \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface ICsvExportModalData {\r\n title: string;\r\n filterStartDate: Date;\r\n filterEndDate: Date;\r\n}\r\n\r\n@Component({\r\n selector: 'app-csv-export-modal-component',\r\n styleUrls: ['./csv-export-modal.component.scss'],\r\n templateUrl: './csv-export-modal.component.html',\r\n})\r\nexport class CsvExportModalComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ICsvExportModalData\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

{{ data.title }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\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\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\n\r\n\r\n@Component({\r\n selector: 'app-customer-action-status',\r\n templateUrl: './customer-action-status.component.html',\r\n styleUrls: ['./customer-action-status.component.scss'],\r\n})\r\nexport class CustomerActionStatusComponent {\r\n @Input() customerActionStatusEmailRequired: string;\r\n @Input() customerActionStatusSetupRequired: string;\r\n @Input() customerActionStatusTopCustomer: string;\r\n @Input() toolTipEmailRequired: string;\r\n @Input() toolTipSetupRequired: string;\r\n @Input() toolTipTopCustomer: string;\r\n @Input() moreThan2Badges: string;\r\n\r\n constructor(\r\n ) { }\r\n \r\n}\r\n","
\r\n \r\n Email Required\r\n \r\n
\r\n\r\n
\r\n \r\n Setup Required\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n Top Customer\r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface DeleteConfirmationData {\r\n item: any;\r\n description?: string;\r\n fullDescription?: string;\r\n includeThis: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'app-delete-confirmation',\r\n styleUrls: ['./delete-confirmation.component.scss'],\r\n templateUrl: './delete-confirmation.component.html',\r\n})\r\nexport class DeleteConfirmationComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DeleteConfirmationData\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

\r\n Delete {{ (data.description != null)? data.description : \"Record\" }}?\r\n

\r\n
\r\n \r\n {{ data.fullDescription }}\r\n \r\n {{ data.fullDescription }}\r\n You are about to remove {{data.includeThis ? \"this \" : \"\"}} {{ (data.description != null)? data.description : \"record\" }}. Are you\r\n sure?\r\n
\r\n
\r\n
\r\n \r\n Confirm\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-distribute-emails-confirmation',\r\n styleUrls: ['./distribute-emails-confirmation.component.scss'],\r\n templateUrl: './distribute-emails-confirmation.component.html',\r\n})\r\nexport class DistributeEmailsConfirmationComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any[]\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Distribute?

\r\n
\r\n \r\n You are about to distribute the following templates to the customers\r\n assigned to them. Are you sure?\r\n \r\n\r\n
\r\n
\r\n
{{ cell.name }}
\r\n
\r\n 0 emails\r\n 0\"\r\n [options]=\"cell.customerEmails\"\r\n [filter]=\"true\"\r\n >\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Confirm\r\n \r\n \r\n
\r\n
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ImageSettingsModel } from '@syncfusion/ej2-angular-richtexteditor';\r\n\r\nimport { SharedService } from '../../../../layouts/shared-service';\r\nimport { CustomerCompanyTypesService } from '../../../../services/customer-company-types.service';\r\n// Services\r\nimport { CustomerinfobygroupService } from '../../../../services/customerinfobygroup.service';\r\nimport { DistributionService } from '../../../../services/distribution.service';\r\nimport { EmailcontentService } from '../../../../services/emailcontent.service';\r\nimport { PricingtemplatesService } from '../../../../services/pricingtemplates.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\nexport interface DistributionDialogData {\r\n pricingTemplate: any;\r\n customer: any;\r\n customerCompanyType: number;\r\n emailContentGreeting: any;\r\n emailContentSignature: any;\r\n fboId: number;\r\n groupId: number;\r\n}\r\n\r\n@Component({\r\n selector: 'app-distribution-wizard-main',\r\n styleUrls: ['./distribution-wizard-main.component.scss'],\r\n templateUrl: './distribution-wizard-main.component.html',\r\n})\r\nexport class DistributionWizardMainComponent implements OnInit {\r\n public emailContentGreetings: any[] = [];\r\n public emailContentBodies: any[] = [];\r\n public emailContentSignatures: any[] = [];\r\n public isDistributionComplete = false;\r\n public firstFormGroup: FormGroup;\r\n public secondFormGroup: FormGroup;\r\n public thirdFormGroup: FormGroup;\r\n public fourthFormGroup: FormGroup;\r\n public fifthFormGroup: FormGroup;\r\n public isLoadingCustomers = true;\r\n public isLoadingPricingTemplates = true;\r\n public isLoadingEmailContent = true;\r\n public isLoadingPreview = true;\r\n public availablePricingTemplates: any[];\r\n public customerCompanyTypes: any[];\r\n public availableCustomers: any[];\r\n public distributionPreview: string;\r\n public validityMessage: string;\r\n public isForSingleCustomer = false;\r\n public isForSinglePricingTemplate = false;\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64' }\r\n\r\n // Added services\r\n public sharedservice: SharedService;\r\n\r\n pricingTemplateSubscription: Subscription;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DistributionDialogData,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerCompanyTypesService: CustomerCompanyTypesService,\r\n private distributionService: DistributionService,\r\n private emailContentService: EmailcontentService,\r\n private pricingtemplatesService: PricingtemplatesService,\r\n private formBuilder: FormBuilder\r\n ) {\r\n if (this.data.customer !== null) {\r\n this.isForSingleCustomer = true;\r\n } else if (this.data.pricingTemplate !== null) {\r\n this.isForSinglePricingTemplate = true;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.loadAvailableEmailContent();\r\n this.loadAvailablePricingTemplates();\r\n this.loadAvailableCustomerCompanyTypes();\r\n this.loadValidityMessage();\r\n\r\n this.firstFormGroup = this.formBuilder.group({\r\n customer: [''],\r\n customerCompanyType: [''],\r\n pricingTemplate: [''],\r\n });\r\n this.secondFormGroup = this.formBuilder.group({\r\n emailContentGreeting: ['', Validators.required],\r\n emailContentGreetingName: ['', Validators.required],\r\n emailContentSubject: ['', Validators.required],\r\n });\r\n this.thirdFormGroup = this.formBuilder.group({\r\n emailContentSignature: ['', Validators.required],\r\n emailContentSignatureName: ['', Validators.required],\r\n });\r\n\r\n this.fourthFormGroup = this.formBuilder.group({});\r\n\r\n this.fifthFormGroup = this.formBuilder.group({});\r\n\r\n // Subscribe to necessary changes\r\n this.pricingTemplateSubscription = this.firstFormGroup\r\n .get('pricingTemplate')\r\n .valueChanges.subscribe((val) => {\r\n this.data.pricingTemplate = val;\r\n // Only reload customers if they've already been loaded\r\n if (\r\n this.availableCustomers &&\r\n this.availableCustomers.length > 0\r\n ) {\r\n this.loadAvailableCustomers();\r\n }\r\n });\r\n // ***Removing customer type selection for now***\r\n // this.firstFormGroup.get('customerCompanyType').valueChanges.subscribe(val => {\r\n // this.data.customerCompanyType = val;\r\n // //Only reload customers if they've already been loaded\r\n // if (this.availableCustomers && this.availableCustomers.length > 0)\r\n // this.loadAvailableCustomers();\r\n // });\r\n }\r\n ngOnDestroy() {\r\n this.pricingTemplateSubscription?.unsubscribe();\r\n }\r\n\r\n public pricingTemplateChanged() {\r\n this.data.pricingTemplate =\r\n this.firstFormGroup.get('pricingTemplate').value;\r\n this.loadAvailableCustomers();\r\n }\r\n\r\n public customerCompanyTypeChanged() {\r\n this.data.customerCompanyType = this.firstFormGroup.get(\r\n 'customerCompanyType'\r\n ).value;\r\n this.loadAvailableCustomers();\r\n }\r\n\r\n public customerChanged() {\r\n this.data.customer = this.firstFormGroup.get('customer').value;\r\n }\r\n\r\n public emailContentGreetingChange() {\r\n this.secondFormGroup.patchValue({\r\n emailContentGreetingName: this.secondFormGroup.get(\r\n 'emailContentGreeting'\r\n ).value.name,\r\n });\r\n }\r\n\r\n public emailContentSubjectChange() {\r\n this.secondFormGroup.patchValue({\r\n emailContentSubject: this.secondFormGroup.get('emailContentSubject')\r\n .value.name,\r\n });\r\n }\r\n\r\n public emailContentSignatureChange() {\r\n this.thirdFormGroup.patchValue({\r\n emailContentSignatureName: this.secondFormGroup.get(\r\n 'emailContentSignature'\r\n ).value.name,\r\n });\r\n }\r\n\r\n public generatePreview() {\r\n this.isLoadingPreview = true;\r\n this.distributionService\r\n .previewDistribution(this.data)\r\n .subscribe((data: any) => {\r\n this.isLoadingPreview = false;\r\n this.distributionPreview = data.preview;\r\n });\r\n }\r\n\r\n public distributePricingClicked() {\r\n this.data.emailContentGreeting = this.secondFormGroup.get(\r\n 'emailContentGreeting'\r\n ).value;\r\n this.data.emailContentGreeting.name = this.secondFormGroup.get(\r\n 'emailContentGreetingName'\r\n ).value;\r\n this.data.emailContentGreeting.subject = this.secondFormGroup.get(\r\n 'emailContentSubject'\r\n ).value;\r\n this.data.emailContentSignature = this.thirdFormGroup.get(\r\n 'emailContentSignature'\r\n ).value;\r\n this.data.emailContentSignature.name = this.thirdFormGroup.get(\r\n 'emailContentSignatureName'\r\n ).value;\r\n\r\n this.distributionService\r\n .distributePricing(this.data)\r\n .subscribe((data: any) => {});\r\n this.isDistributionComplete = true;\r\n }\r\n\r\n // Private Methods\r\n private loadAvailablePricingTemplates() {\r\n this.pricingtemplatesService\r\n .getByFbo(this.data.fboId)\r\n .subscribe((data: any) => {\r\n this.availablePricingTemplates = data;\r\n this.availablePricingTemplates.splice(0, 0, {\r\n name: '--All Margin Templates--',\r\n oid: 0,\r\n });\r\n if (\r\n !this.data.pricingTemplate ||\r\n this.data.pricingTemplate.oid === 0\r\n ) {\r\n this.data.pricingTemplate =\r\n this.availablePricingTemplates[0];\r\n } else {\r\n for (const pricingTemplate of this\r\n .availablePricingTemplates) {\r\n if (\r\n this.data.pricingTemplate.oid ===\r\n pricingTemplate.oid\r\n ) {\r\n this.data.pricingTemplate = pricingTemplate;\r\n }\r\n }\r\n }\r\n this.firstFormGroup.patchValue({\r\n pricingTemplate: this.data.pricingTemplate,\r\n });\r\n this.loadAvailableCustomers();\r\n this.isLoadingPricingTemplates = false;\r\n });\r\n }\r\n\r\n private loadAvailableCustomers() {\r\n this.isLoadingCustomers = true;\r\n this.customerInfoByGroupService\r\n .getCustomersByGroupAndFBOAndPricing(\r\n this.data.groupId,\r\n this.data.fboId,\r\n this.data.pricingTemplate.oid\r\n )\r\n .subscribe((data: any) => {\r\n this.availableCustomers = [];\r\n for (const customer of data) {\r\n if (\r\n customer.distribute &&\r\n (!this.data.customerCompanyType ||\r\n this.data.customerCompanyType === 0 ||\r\n this.data.customerCompanyType ===\r\n customer.customerCompanyType)\r\n ) {\r\n this.availableCustomers.push(customer);\r\n }\r\n }\r\n this.availableCustomers.splice(0, 0, {\r\n company: '--All Applicable Customers--',\r\n oid: 0,\r\n });\r\n if (!this.data.customer || this.data.customer.oid === 0) {\r\n this.data.customer = this.availableCustomers[0];\r\n } else {\r\n for (const customer of this.availableCustomers) {\r\n if (this.data.customer.oid === customer.oid) {\r\n this.data.customer = customer;\r\n }\r\n }\r\n }\r\n this.firstFormGroup.patchValue({\r\n customer: this.data.customer,\r\n });\r\n this.isLoadingCustomers = false;\r\n });\r\n }\r\n\r\n private loadAvailableCustomerCompanyTypes() {\r\n this.customerCompanyTypesService\r\n .getForFbo(this.data.fboId)\r\n .subscribe((data: any) => {\r\n this.customerCompanyTypes = data;\r\n this.customerCompanyTypes.splice(0, 0, {\r\n name: '--All Types--',\r\n oid: 0,\r\n });\r\n if (!this.data.customerCompanyType) {\r\n this.data.customerCompanyType = 0;\r\n }\r\n this.firstFormGroup.patchValue({\r\n customerCompanyType: this.data.customerCompanyType,\r\n });\r\n });\r\n }\r\n\r\n private loadAvailableEmailContent() {\r\n this.emailContentService\r\n .getForFbo(this.data.fboId)\r\n .subscribe((data: any) => {\r\n for (const template of data) {\r\n if (template.emailContentType === 1) {\r\n this.emailContentGreetings.push(template);\r\n } else if (template.emailContentType === 2) {\r\n this.emailContentBodies.push(template);\r\n } else if (template.emailContentType === 3) {\r\n this.emailContentSignatures.push(template);\r\n }\r\n }\r\n this.emailContentGreetings.splice(0, 0, {\r\n emailContentHtml: '',\r\n emailContentType: 1,\r\n name: 'New Greeting',\r\n oid: 0,\r\n });\r\n this.emailContentSignatures.splice(0, 0, {\r\n emailContentHtml: '',\r\n emailContentType: 3,\r\n name: 'New Signature',\r\n oid: 0,\r\n });\r\n this.data.emailContentGreeting =\r\n this.emailContentGreetings[\r\n this.emailContentGreetings.length - 1\r\n ];\r\n this.data.emailContentSignature =\r\n this.emailContentSignatures[\r\n this.emailContentSignatures.length - 1\r\n ];\r\n this.isLoadingEmailContent = false;\r\n });\r\n }\r\n\r\n private loadValidityMessage() {\r\n this.distributionService\r\n .getDistributionValidityForFbo(this.data.fboId)\r\n .subscribe((data: any) => {\r\n this.validityMessage = data.message;\r\n });\r\n }\r\n}\r\n","

Distribute Pricing

\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n 0\"\r\n class=\"text-center font-weight-bold\"\r\n >\r\n {{ validityMessage }}\r\n
\r\n\r\n \r\n \r\n
\r\n Initial Setup\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ pricingTemplate.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 {{ customer.company }}\r\n \r\n \r\n \r\n
\r\n
\r\n 0\r\n \"\r\n class=\"row\"\r\n >\r\n
\r\n Note\r\n \r\n Only customers assigned the selected margin\r\n template will receive an email\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Choose Greeting\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ emailContent.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 Choose Signature\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ emailContent.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 Next\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Preview\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n Distribute Pricing\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n Distribute\r\n You are now ready to distribute pricing. Click\r\n \"Distribute Pricing\" below to start.\r\n
\r\n \r\n \r\n \r\n Distribute Pricing\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Price distribution has been started. You can now close this window.\r\n
\r\n\r\n 0)\r\n \"\r\n mat-dialog-actions\r\n style=\"flex-direction: column\"\r\n>\r\n \r\n\r\n","import { Component, EventEmitter, Inject, Output } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\n\r\nimport { SharedService } from '../../../../layouts/shared-service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n providers: [SharedService],\r\n selector: 'app-distribution-wizard-review',\r\n styleUrls: ['./distribution-wizard-review.component.scss'],\r\n templateUrl: './distribution-wizard-review.component.html',\r\n})\r\nexport class DistributionWizardReviewComponent {\r\n @Output() idChanged1: EventEmitter = new EventEmitter();\r\n\r\n public navigationSubscription: any;\r\n public previewEmail: string;\r\n routerSubscription: Subscription;\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private router: Router\r\n ) {\r\n this.router.routeReuseStrategy.shouldReuseRoute = () => false;\r\n\r\n this.routerSubscription = this.router.events.subscribe((evt) => {\r\n if (evt instanceof NavigationEnd) {\r\n // trick the Router into believing it's last link wasn't previously loaded\r\n this.router.navigated = false;\r\n // if you need to scroll back to top, here is the right place\r\n window.scrollTo(0, 0);\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.routerSubscription?.unsubscribe();\r\n }\r\n public closeDialog() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Send Preview Email

\r\n
\r\n
Please provide your email address below.
\r\n
\r\n \r\n \r\n \r\n
\r\n Please enter a valid email address.\r\n
\r\n
\r\n
\r\n
\r\n \r\n Send Preview Email\r\n \r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { ImageSettingsModel } from '@syncfusion/ej2-angular-richtexteditor';\r\n\r\n// Services\r\nimport { EmailcontentService } from '../../../services/emailcontent.service';\r\n\r\nexport interface EmailContentDialogData {\r\n oid: number;\r\n emailContentHTML: string;\r\n fboId: number;\r\n emailContentType: number;\r\n name: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-email-content-edit',\r\n styleUrls: ['./email-content-edit.component.scss'],\r\n templateUrl: './email-content-edit.component.html',\r\n})\r\nexport class EmailContentEditComponent {\r\n public emailContentTypes: any[] = [];\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64' }\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public emailContent: EmailContentDialogData,\r\n private emailContentService: EmailcontentService\r\n ) {}\r\n\r\n // Public Methods\r\n public onSaveChangesClick(): void {\r\n if (this.emailContent.oid > 0) {\r\n this.emailContentService\r\n .update(this.emailContent)\r\n .subscribe(() => this.completeSave());\r\n } else {\r\n this.emailContentService\r\n .add(this.emailContent)\r\n .subscribe(() => this.completeSave());\r\n }\r\n }\r\n\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n // Private Methods\r\n private completeSave() {\r\n this.dialogRef.close(this.emailContent);\r\n }\r\n}\r\n","

0\" mat-dialog-title>Edit Email Content

\r\n

\r\n New Email Content\r\n

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ contentType.description }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n save\r\n {{ emailContent.oid > 0 ? \"Save Changes\" : \"Add New\" }}\r\n \r\n \r\n
\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-email-content-selection',\r\n styleUrls: ['./email-content-selection.component.scss'],\r\n templateUrl: './email-content-selection.component.html',\r\n})\r\nexport class EmailContentSelectionComponent {\r\n constructor() {}\r\n}\r\n","
email-content-selection Component
\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { SelectedEventArgs, FileInfo } from '@syncfusion/ej2-angular-inputs';\r\nimport { ImageDropEventArgs, ImageSettingsModel } from '@syncfusion/ej2-angular-richtexteditor';\r\nimport { FileHelper } from 'src/app/helpers/files/file.helper';\r\nimport { EditorBase } from 'src/app/services/text-editor/editorBase';\r\n\r\n@Component({\r\n selector: 'app-email-templates-dialog-new-template',\r\n styleUrls: ['./email-templates-dialog-new-template.component.scss'],\r\n templateUrl: './email-templates-dialog-new-template.component.html',\r\n})\r\nexport class EmailTemplatesDialogNewTemplateComponent extends EditorBase implements OnInit {\r\n public insertImageSettings: ImageSettingsModel = { saveFormat: 'Base64' }\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: any, fileHelper: FileHelper) {\r\n super(fileHelper);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!this.data.hideName && !this.data.name) {\r\n this.data.name = '';\r\n }\r\n if (!this.data.subject) {\r\n this.data.subject = '';\r\n }\r\n if (!this.data.emailContentHtml) {\r\n this.data.emailContentHtml = '';\r\n }\r\n }\r\n\r\n get isSubmitDisabled() {\r\n return (\r\n (!this.data.hideName && !this.data.name) ||\r\n !this.data.emailContentHtml ||\r\n !this.data.subject\r\n );\r\n }\r\n\r\n get submitButtonTitle() {\r\n return this.data.isUpdate\r\n ? 'Update Email Template'\r\n : 'Add Email Template';\r\n }\r\n}\r\n","

New Email Template

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ submitButtonTitle }}\r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { FavoritesService } from 'src/app/services/favorites.service';\r\nimport { SnackBarService } from 'src/app/services/utils/snackBar.service';\r\nimport { AircraftAssignModalComponent, NewCustomerAircraftDialogData } from '../aircraft-assign-modal/aircraft-assign-modal.component';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { Aircraftwatch } from 'src/app/models/flight-watch';\r\nimport { FlightWatchMapSharedService } from 'src/app/pages/flight-watch/services/flight-watch-map-shared.service';\r\nexport enum CallbackComponent {\r\n aircraft,\r\n Company,\r\n customCallback\r\n}\r\n@Component({\r\n selector: 'app-favorite-icon',\r\n templateUrl: './favorite-icon.component.html',\r\n styleUrls: ['./favorite-icon.component.scss']\r\n})\r\nexport class FavoriteIconComponent implements OnInit {\r\n @Input() favoriteData: any;\r\n @Input() callbackComponent: CallbackComponent = CallbackComponent.customCallback;\r\n @Input() isSaving: boolean = false;\r\n @Input() hasPadding: boolean = true;\r\n @Input() customers: [] = [];\r\n @Output() favoriteClick = new EventEmitter();\r\n\r\n isFavorite = false;\r\n\r\n constructor(private favoritesService: FavoritesService,\r\n private sharedService: SharedService,\r\n private snackbarService: SnackBarService,\r\n private newCustomerAircraftDialog: MatDialog,\r\n private flightWatchMapSharedService: FlightWatchMapSharedService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isFavorite = this.favoriteData.isFavorite;\r\n }\r\n\r\n setIsFavoriteProperty(aircraft: any): any {\r\n aircraft.isFavorite = aircraft.favoriteAircraft != null;\r\n return aircraft;\r\n }\r\n async toogleFavorite(): Promise{\r\n if(this.isSaving) return;\r\n\r\n this.isFavorite = !this.isFavorite;\r\n this.favoriteData.isFavorite = this.isFavorite;\r\n\r\n switch(this.callbackComponent) {\r\n case CallbackComponent.aircraft: {\r\n await this.aircraftFavoriteClickAction(this.favoriteData);\r\n break;\r\n }\r\n case CallbackComponent.Company: {\r\n this.companyFavoriteClickAction(this.favoriteData);\r\n break;\r\n }\r\n default: {\r\n this.favoriteClick.emit(this.favoriteData);\r\n break;\r\n }\r\n }\r\n\r\n }\r\n private hasCustomer(): boolean {\r\n return this.callbackComponent == CallbackComponent.aircraft && this.favoriteData.isCustomerManagerAircraft;\r\n }\r\n private async aircraftFavoriteClickAction(favoriteData: any): Promise {\r\n if(!this.hasCustomer()){\r\n await this.openAddCustomerToAicraftDialog();\r\n }\r\n else\r\n this.toogleAicraftFavorite(favoriteData);\r\n }\r\n private toogleAicraftFavorite(favoriteData: any): void {\r\n if(favoriteData.isFavorite)\r\n this.favoritesService.saveAircraftFavorite(this.sharedService.currentUser.fboId, favoriteData.customerAircraftId, this.sharedService.currentUser.groupId)\r\n .subscribe(\r\n (data: any) => {\r\n favoriteData.favoriteAircraft = data;\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n this.snackbarService.showErrorSnackBar(\"Error adding aircraft to favorites\");\r\n favoriteData.favoriteAircraft = null;\r\n favoriteData.isFavorite = false;\r\n this.isFavorite = false;\r\n }\r\n );\r\n else\r\n this.favoritesService.deleteAircraftFavorite(favoriteData.favoriteAircraft.oid, this.sharedService.currentUser.groupId).subscribe(\r\n (data: any) => {\r\n favoriteData.favoriteAircraft = null;\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n this.snackbarService.showErrorSnackBar(\"Error removing aircraft from favorites\");\r\n }\r\n );\r\n }\r\n private async openAddCustomerToAicraftDialog(): Promise{\r\n let dialogRef = this.newCustomerAircraftDialog.open<\r\n AircraftAssignModalComponent,\r\n Partial\r\n >(AircraftAssignModalComponent, {\r\n data: {\r\n customers: this.customers,\r\n tailNumber: this.favoriteData.tailNumber\r\n },\r\n panelClass: 'aircraft-assign-modal',\r\n width: '450px',\r\n });\r\n let result = await dialogRef\r\n .afterClosed().toPromise();\r\n if (result) {\r\n let aircraftWatch: Aircraftwatch = {\r\n customerInfoByGroupId : result.customerInfoByGroupID,\r\n tailNumber: this.favoriteData.tailNumber,\r\n atcFlightNumber: this.favoriteData.atcFlightNumber,\r\n aircraftTypeCode: this.favoriteData.aircraftTypeCode,\r\n isAircraftOnGround: false,\r\n flightDepartment: result.company,\r\n aircraftMakeModel: result.aircraftType,\r\n lastQuote: this.favoriteData.lastQuote,\r\n currentPricing: this.favoriteData.currentPricing,\r\n aircraftICAO: this.favoriteData.aircraftICAO,\r\n faaRegisteredOwner: this.favoriteData.faaRegisteredOwner,\r\n origin: this.favoriteData.origin,\r\n destination: this.favoriteData.destination,\r\n isJetNetEnabled: false\r\n };\r\n this.favoriteData.isFavorite = this.isFavorite;\r\n this.favoriteData.isCustomerManagerAircraft = true;\r\n this.favoriteData.customerInfoByGroupId = result.customerInfoByGroupID;\r\n this.favoriteData.customerAircraftId = result.customerAircraftId;\r\n this.flightWatchMapSharedService.updateCustomerAicraftData(aircraftWatch);\r\n this.toogleAicraftFavorite(this.favoriteData);\r\n }else{\r\n this.isFavorite = !this.isFavorite;\r\n this.favoriteData.isFavorite = this.isFavorite;\r\n }\r\n dialogRef = null;\r\n }\r\n private companyFavoriteClickAction(favoriteData: any): void {\r\n if(favoriteData.isFavorite)\r\n this.favoritesService.saveCompanyFavorite(this.sharedService.currentUser.fboId, favoriteData.customerInfoByGroupId)\r\n .subscribe(\r\n (data: any) => {\r\n favoriteData.favoriteCompany = data;\r\n this.favoriteClick.emit(this.favoriteData);\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n this.snackbarService.showErrorSnackBar(\"Error adding company to favorites\");\r\n favoriteData.isFavorite = false;\r\n this.isFavorite = false;\r\n }\r\n );\r\n else\r\n this.favoritesService.deleteCompanyFavorite(favoriteData.favoriteCompany.oid)\r\n .subscribe(\r\n (data: any) => {\r\n favoriteData.favoriteCompany = null;\r\n this.favoriteClick.emit(this.favoriteData);\r\n },\r\n (error: any) => {\r\n console.log(error)\r\n this.snackbarService.showErrorSnackBar(\"Error removing company from favorites\");\r\n favoriteData.isFavorite = true;\r\n this.isFavorite = true;\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n \r\n star\r\n \r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-fbo-prices-panel',\r\n styleUrls: ['./fbo-prices-panel.component.scss'],\r\n templateUrl: './fbo-prices-panel.component.html',\r\n})\r\nexport class FboPricesPanelComponent {\r\n @Input() enableJetA: boolean;\r\n @Input() enableSaf: boolean;\r\n @Input() retailSaf: number;\r\n @Input() costSaf: number;\r\n @Input() retailJetA: number;\r\n @Input() costJetA: number;\r\n @Input() effectiveToSaf: string;\r\n @Input() effectiveToJetA: string;\r\n @Output() onClearFboPrice = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n public clear(product) {\r\n this.onClearFboPrice.emit(product);\r\n }\r\n}\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
Retail:
\r\n
\r\n
\r\n
\r\n 0\">${{ retailSaf | decimalPrecision }}\r\n Expired\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Cost:
\r\n
\r\n
\r\n
\r\n 0\">${{ costSaf | decimalPrecision }}\r\n Expired\r\n
\r\n
\r\n
\r\n
\r\n
0\" class=\"d-flex justify-content-between\">\r\n
{{effectiveToSaf}}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
0 || costJetA > 0\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Retail:
\r\n
\r\n
\r\n
\r\n 0\">${{ retailJetA | decimalPrecision }}\r\n Expired\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
Cost:
\r\n
\r\n
\r\n
\r\n 0\">${{ costJetA | decimalPrecision }}\r\n Expired\r\n
\r\n
\r\n
\r\n
\r\n
0\" class=\"d-flex justify-content-between\">\r\n
{{effectiveToJetA}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\nexport enum FeeAndTaxBreakdownDisplayModes {\r\n PriceTaxBreakdown = 0,\r\n CustomerOmitting = 1,\r\n PricingPanel = 2,\r\n}\r\n\r\n@Component({\r\n selector: 'fee-and-tax-breakdown',\r\n styleUrls: ['./fee-and-tax-breakdown.component.scss'],\r\n templateUrl: './fee-and-tax-breakdown.component.html',\r\n})\r\nexport class FeeAndTaxBreakdownComponent implements OnInit {\r\n @Input()\r\n feesAndTaxes: Array;\r\n @Input()\r\n marginType: number;\r\n @Input()\r\n customerMargin: number;\r\n @Input()\r\n showLineSeparator = false;\r\n @Input()\r\n displayMode: FeeAndTaxBreakdownDisplayModes =\r\n FeeAndTaxBreakdownDisplayModes.PriceTaxBreakdown;\r\n @Input()\r\n fboPrice: number;\r\n @Input()\r\n validDepartureTypes: Array = [0, 1, 2, 3];\r\n @Input()\r\n validFlightTypes: Array = [0, 1, 2, 3];\r\n @Input()\r\n discountType : number;\r\n @Input()\r\n isMember: boolean;\r\n @Output()\r\n omitCheckChanged: EventEmitter = new EventEmitter();\r\n\r\n public aboveTheLineTaxes: Array = [];\r\n public belowTheLineTaxes: Array = [];\r\n public preMarginSubTotal = 0;\r\n public subTotalWithMargin = 0;\r\n public total = 0;\r\n public marginITP : number = 0;\r\n public subMargin : number = 0;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.performRecalculation();\r\n this.calcItpMargin()\r\n\r\n }\r\n\r\n public omitChanged(fee: any): void {\r\n this.omitCheckChanged.emit(fee);\r\n\r\n }\r\n\r\n\r\n public performRecalculation(): void {\r\n\r\n\r\n this.prepareTaxes();\r\n this.calculatePrices();\r\n }\r\n\r\n // Private Methods\r\n private prepareTaxes() {\r\n if (!this.feesAndTaxes) {\r\n return;\r\n }\r\n this.aboveTheLineTaxes = this.feesAndTaxes.filter(\r\n (tax) => tax.whenToApply === 0\r\n );\r\n this.belowTheLineTaxes = this.feesAndTaxes.filter(\r\n (tax) => tax.whenToApply === 1\r\n );\r\n }\r\n\r\n private calculatePrices(): void {\r\n\r\n this.calculatePreMarginSubTotal();\r\n this.calcItpMargin();\r\n this.calculateSubTotalWithMargin();\r\n this.calculateTotal();\r\n }\r\n\r\n private calcItpMargin ()\r\n {\r\n //Cost+ Mode\r\n if(this.marginType == 0)\r\n {\r\n if(this.discountType == 1)\r\n {\r\n this.marginITP = this.fboPrice *this.customerMargin /100;\r\n\r\n }\r\n\r\n else\r\n {\r\n this.marginITP = this.customerMargin ;\r\n\r\n\r\n }\r\n\r\n this.subTotalWithMargin = this.marginITP + this.preMarginSubTotal\r\n }\r\n\r\n // Retail- Mode\r\n else\r\n {\r\n if(this.discountType == 1)\r\n {\r\n this.marginITP = this.fboPrice *this.customerMargin /100;\r\n\r\n }\r\n\r\n else\r\n {\r\n this.marginITP = this.customerMargin ;\r\n\r\n\r\n }\r\n\r\n this.subTotalWithMargin = this.preMarginSubTotal - this.marginITP\r\n\r\n }\r\n }\r\n\r\n private calculatePreMarginSubTotal(): void {\r\n let result = this.fboPrice;\r\n const basePrice = this.fboPrice;\r\n\r\n this.aboveTheLineTaxes.forEach((fee) => {\r\n if (fee.calculationType === 0) {\r\n fee.amount = fee.value;\r\n } else if (fee.calculationType === 1) {\r\n fee.amount = (fee.value / 100.0) * basePrice;\r\n }\r\n if (this.isFeeValidForTotal(fee)) {\r\n result += fee.amount;\r\n }\r\n });\r\n\r\n if (this.marginType === 1) {\r\n this.preMarginSubTotal = this.fboPrice;\r\n } else {\r\n this.preMarginSubTotal = result;\r\n }\r\n }\r\n\r\n private calculateSubTotalWithMargin() {\r\n if (!this.customerMargin && this.customerMargin !== 0) {\r\n return this.preMarginSubTotal;\r\n }\r\n\r\n this.subTotalWithMargin = 0;\r\n if(this.marginType == 0)\r\n {\r\n if(this.discountType == 1)\r\n {\r\n this.marginITP = this.fboPrice *this.customerMargin /100;\r\n\r\n }\r\n\r\n else\r\n {\r\n this.marginITP = this.customerMargin ;\r\n\r\n\r\n }\r\n\r\n this.subTotalWithMargin = this.marginITP + this.preMarginSubTotal\r\n }\r\n\r\n // Retail- Mode\r\n else\r\n {\r\n if(this.discountType == 1)\r\n {\r\n this.marginITP = this.fboPrice *this.customerMargin /100;\r\n\r\n }\r\n\r\n else\r\n {\r\n this.marginITP = this.customerMargin ;\r\n\r\n\r\n }\r\n\r\n this.subTotalWithMargin = this.preMarginSubTotal - this.marginITP\r\n\r\n }\r\n }\r\n\r\n private calculateTotal() {\r\n let result = this.subTotalWithMargin;\r\n\r\n this.belowTheLineTaxes.forEach((fee) => {\r\n if (fee.calculationType === 0) {\r\n fee.amount = fee.value;\r\n } else if (fee.calculationType === 1) {\r\n fee.amount = (fee.value / 100.0) * this.subTotalWithMargin;\r\n }\r\n if (this.isFeeValidForTotal(fee)) {\r\n result += fee.amount;\r\n }\r\n });\r\n\r\n this.total = result;\r\n }\r\n\r\n private isFeeValidForTotal(fee: any): boolean {\r\n if (fee.isOmitted || (fee.omittedFor && fee.omittedFor.length > 0)) {\r\n return false;\r\n }\r\n if (this.validDepartureTypes.indexOf(fee.departureType) === -1) {\r\n return false;\r\n }\r\n if (\r\n this.validFlightTypes.indexOf(fee.flightTypeClassification) === -1\r\n ) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
Omit
\r\n
\r\n
\r\n Name\r\n
\r\n
Name
\r\n
\r\n
Amount
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n {{ marginType == 0 ? \"Cost\" : \"Retail\" }}\r\n
\r\n
\r\n
${{ fboPrice | decimalPrecision }}
\r\n
\r\n\r\n \r\n
0}\">\r\n
\r\n \r\n
\r\n
\r\n {{ aboveLineTax.name }} 0\">{{aboveLineTax.omittedFor}}\r\n
\r\n
\r\n {{ aboveLineTax.value | decimalPrecision }}%\r\n
\r\n
\r\n {{ aboveLineTax.amount | currencyPresicion }}\r\n Applied\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
Sub-total
\r\n
\r\n
\r\n {{ preMarginSubTotal | currencyPresicion }}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
ITP-Margin
\r\n
Discount
\r\n
\r\n
\r\n -${{ marginITP | decimalPrecision }}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
Sub-total w/ Margin
\r\n
\r\n
\r\n {{ subTotalWithMargin | currencyPresicion }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
0}\">\r\n
\r\n \r\n
\r\n
\r\n {{ belowLineTax.name }} 0\">{{belowLineTax.omittedFor}}\r\n
\r\n
\r\n {{ belowLineTax.value | decimalPrecision }}%\r\n
\r\n
\r\n {{ belowLineTax.amount | currencyPresicion }}\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
Total
\r\n
\r\n
{{ total | currencyPresicion }}
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n ${{ fboPrice | decimalPrecision }}\r\n
\r\n
\r\n
\r\n
\r\n {{ marginType == 0 ? \"Cost\" : \"Posted Retail\" }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n Applied\r\n
\r\n
\r\n
\r\n {{ aboveLineTax.value | decimalPrecision }}%\r\n
\r\n
\r\n {{ aboveLineTax.amount | currencyPresicion }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ aboveLineTax.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 {{ belowLineTax.value | decimalPrecision }}%\r\n
\r\n
\r\n {{ belowLineTax.amount | decimalPrecision }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ belowLineTax.name }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n C - Omitted for customer\r\n
\r\n
\r\n
\r\n
\r\n P - Omitted for template\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n// Services\r\n\r\n// Interfaces\r\nexport interface ForgotPasswordDialogData {\r\n email: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-forgot-password-dialog',\r\n styleUrls: ['./forgot-password-dialog.component.scss'],\r\n templateUrl: './forgot-password-dialog.component.html',\r\n})\r\nexport class ForgotPasswordDialogComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ForgotPasswordDialogData\r\n ) {}\r\n\r\n // Public Methods\r\n public onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Forgot Password

\r\n
\r\n
Please provide your email address below.
\r\n
\r\n \r\n \r\n \r\n
\r\n Please enter a valid email address.\r\n
\r\n
\r\n
\r\n
\r\n \r\n Send Reset Link\r\n \r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-fuelreqs-export-modal-component',\r\n styleUrls: ['./fuelreqs-export.component.scss'],\r\n templateUrl: './fuelreqs-export.component.html',\r\n})\r\nexport class FuelReqsExportModalComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Fuel Orders Export

\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\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\r\n \r\n \r\n
\r\n
\r\n","import { Inject, OnInit } from '@angular/core';\r\nimport { Component, } from '@angular/core';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Company, JetNet, AircraftResult } from '../../../models/jetnet-information';\r\nimport { CustomersDialogNewCustomerComponent } from '../../../pages/customers/customers-dialog-new-customer/customers-dialog-new-customer.component';\r\nimport { JetNetService } from '../../../services/jetnet.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-jetnet-information',\r\n templateUrl: './jetnet-information.component.html',\r\n styleUrls: ['./jetnet-information.component.scss'],\r\n})\r\nexport class JetNetInformationComponent implements OnInit {\r\n public jetNetInformation: JetNet;\r\n public isLoading: boolean;\r\n public isExpanded: boolean = false;\r\n private expandedPanels: Array = new Array();\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA) public data: any,\r\n private newCustomerDialog: MatDialog,\r\n public jetNetDialogRef: MatDialogRef,\r\n private jetNetService: JetNetService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.isLoading = true;\r\n if (this.data && this.data.toUpperCase().startsWith(\"N\")) {\r\n this.jetNetService.getJetNetInformationByTailNumber(this.data).subscribe((response: JetNet) => {\r\n if (response.aircraftresult != null) {\r\n this.jetNetInformation = response;\r\n\r\n if (this.data.toUpperCase() == response.aircraftresult.regnbr) {\r\n this.jetNetInformation.aircraftresult.companies.forEach((company) => {\r\n company.companyrelationships.forEach((contact) => {\r\n if (contact.contactemail)\r\n contact.add = true;\r\n });\r\n });\r\n }\r\n else {\r\n this.jetNetInformation.aircraftresult.regnbr = this.data;\r\n this.jetNetInformation.aircraftresult.make = \"\";\r\n this.jetNetInformation.aircraftresult.model = \"\";\r\n this.jetNetInformation.aircraftresult.companies = null;\r\n }\r\n }\r\n else {\r\n // Example values for AircraftResult\r\n const aircraftResult: AircraftResult = {\r\n regnbr: this.data,\r\n make: \"\",\r\n model: \"\",\r\n companies: null,\r\n aircraftid: 0,\r\n modelid: 0,\r\n airframetype: \"\",\r\n maketype: \"\",\r\n icaotype: \"\",\r\n serialnbr: \"\",\r\n yearmfr: \"\",\r\n yeardlv: \"\",\r\n weightclass: \"\",\r\n categorysize: \"\",\r\n baseicao: \"\",\r\n baseairport: \"\",\r\n ownership: \"\",\r\n usage: \"\",\r\n maintained: \"\",\r\n companyrelationships: null\r\n };\r\n const jetNetInstance: JetNet = {\r\n responseid: \"\",\r\n responsestatus: \"\",\r\n aircraftresult: aircraftResult\r\n };\r\n\r\n this.jetNetInformation = jetNetInstance;\r\n }\r\n this.isLoading = false;\r\n });\r\n }\r\n else {\r\n // Example values for AircraftResult\r\n const aircraftResult: AircraftResult = {\r\n regnbr: this.data,\r\n make: \"\",\r\n model: \"\",\r\n companies: null,\r\n aircraftid: 0,\r\n modelid: 0,\r\n airframetype: \"\",\r\n maketype: \"\",\r\n icaotype: \"\",\r\n serialnbr: \"\",\r\n yearmfr: \"\",\r\n yeardlv: \"\",\r\n weightclass: \"\",\r\n categorysize: \"\",\r\n baseicao: \"\",\r\n baseairport: \"\",\r\n ownership: \"\",\r\n usage: \"\",\r\n maintained: \"\",\r\n companyrelationships: null\r\n };\r\n const jetNetInstance: JetNet = {\r\n responseid: \"\",\r\n responsestatus: \"\",\r\n aircraftresult: aircraftResult\r\n };\r\n\r\n this.jetNetInformation = jetNetInstance;\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n onChange(company: Company, state: string) {\r\n if (state == \"opened\") {\r\n if (this.expandedPanels == undefined)\r\n this.expandedPanels = new Array();\r\n\r\n if (this.expandedPanels.indexOf(company.company) < 0)\r\n this.expandedPanels.push(company.company);\r\n }\r\n else {\r\n this.expandedPanels = this.expandedPanels.filter((expandedCompany) => { return expandedCompany != company.company });\r\n }\r\n\r\n if (company.companyDetailOpenState == undefined)\r\n company.companyDetailOpenState = false;\r\n\r\n company.companyDetailOpenState = !company.companyDetailOpenState;\r\n if (company.companyDetailOpenState)\r\n this.isExpanded = true;\r\n else if (this.expandedPanels.length == 0)\r\n this.isExpanded = false;\r\n }\r\n\r\n public onClickCloseJetNetModal() {\r\n this.jetNetDialogRef.close();\r\n }\r\n\r\n public addCustomer() {\r\n const dialogRef = this.newCustomerDialog.open(\r\n CustomersDialogNewCustomerComponent,\r\n {\r\n height: '600px',\r\n width: '1140px',\r\n data: this.jetNetInformation?.aircraftresult,\r\n },\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((customerInfoByGroupId) => {\r\n if (!customerInfoByGroupId) {\r\n return;\r\n }\r\n else\r\n this.jetNetDialogRef.close(customerInfoByGroupId);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n

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

 {{jetNetInformation.aircraftresult.regnbr}}

\r\n
\r\n
{{jetNetInformation.aircraftresult.make}} {{jetNetInformation.aircraftresult.model}}
\r\n
\r\n
\r\n\r\n \r\n
\r\n Info N/A on JETNET\r\n
\r\n\r\n
\r\n

\r\n\r\n
\r\n
\r\n
Company
\r\n
\r\n
\r\n
Relationship
\r\n
\r\n
\r\n
Contact
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{company.company}}\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.companyaddress1}}
\r\n
{{contact.companyaddress2}}
\r\n
{{contact.companycity}}, {{contact.companystateabbr}} {{contact.companypostcode}} {{contact.companycountry == 'United States' ? 'USA' : contact.companycountry}}
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n {{\r\n contact.companyrelation\r\n }}\r\n
\r\n\r\n
\r\n
{{contact.contactfirstname}} {{contact.contactlastname}} {{contact.contacttitle == null ? \"\" : \"(\" + contact.contacttitle + \")\"}}
\r\n
{{contact.contactbestphone}}
\r\n
{{contact.contactemail}}
\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\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 } from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { JetNetInformationComponent } from '../jetnet-information/jetnet-information.component';\r\n\r\n@Component({\r\n selector: 'app-jetnet-search',\r\n styleUrls: ['./jetnet-search.component.scss'],\r\n templateUrl: './jetnet-search.component.html',\r\n})\r\nexport class JetNetSearchComponent { \r\n constructor(private jetNetInformationDialog: MatDialog,) { }\r\n private isLoading: boolean = false;\r\n\r\n public tailNumberSearchChanged(tailNumber: any) {\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n if (tailNumber.toString() == \"[object PointerEvent]\")\r\n tailNumber.currentTarget.value = (document.getElementById(\"tailNumber\") as HTMLInputElement).value;\r\n\r\n if (tailNumber.currentTarget.value.trim() != \"\") {\r\n const dialogRef = this.jetNetInformationDialog.open(JetNetInformationComponent, {\r\n width: '1100px',\r\n data: tailNumber.currentTarget.value.trim()\r\n });\r\n dialogRef\r\n .afterClosed()\r\n .subscribe((result: any) => {\r\n\r\n });\r\n }\r\n this.isLoading = false;\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 } from '@angular/core';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n//Services\r\nimport { AuthenticationService } from '../../../services/security/authentication.service';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { GroupsService } from 'src/app/services/groups.service';\r\nimport { UserRole } from 'src/app/enums/user-role';\r\n\r\n@Component({\r\n selector: 'app-login-modal',\r\n styleUrls: ['./login-modal.component.scss'],\r\n templateUrl: './login-modal.component.html',\r\n})\r\nexport class LoginModalComponent {\r\n loginForm: FormGroup;\r\n error: '';\r\n public groupsFbosData: any;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private formBuilder: FormBuilder,\r\n private router: Router,\r\n private authenticationService: AuthenticationService,\r\n private sharedService: SharedService,\r\n private groupsService: GroupsService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.loginForm = this.formBuilder.group({\r\n password: new FormControl(''),\r\n remember: new FormControl(false),\r\n username: new FormControl(''),\r\n });\r\n authenticationService.logout();\r\n }\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onSubmit() {\r\n if (this.loginForm.valid) {\r\n this.authenticationService\r\n .login(\r\n this.loginForm.value.username,\r\n this.loginForm.value.password,\r\n this.loginForm.value.remember\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.authenticationService.postAuth().subscribe(async () => {\r\n this.dialogRef.close();\r\n if (data.role === UserRole.Conductor) {\r\n this.router.navigate([\r\n '/default-layout/groups/',\r\n ]);\r\n } else if (data.role === UserRole.GroupAdmin) {\r\n this.router.navigate(['/default-layout/fbos/']);\r\n } else {\r\n this.setFboSessionVariables(data);\r\n\r\n if (data.role === UserRole.CSR)\r\n this.router.navigate([\r\n '/default-layout/dashboard-csr/',\r\n ]);\r\n else\r\n this.router.navigate([\r\n '/default-layout/dashboard-fbo-updated/',\r\n ]);\r\n }\r\n });\r\n },\r\n (error: any) => {\r\n this.error = error.error.message;\r\n }\r\n );\r\n }\r\n }\r\n private async setFboSessionVariables(fboObj: any) {\r\n let icao: string = fboObj.icao;\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.accountType,fboObj.fbo?.accountType);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.fbo,fboObj.fbo.fbo);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.fboId,fboObj.fboId);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.icao,icao);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.isNetworkFbo,(fboObj.group.fbos.length > 1));\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.accountType,fboObj.fbo?.accountType);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.groupId,fboObj.groupId);\r\n\r\n var isSingleSourceFbo = await this.groupsService.isGroupFboSingleSource(icao).toPromise();\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.isSingleSourceFbo,isSingleSourceFbo.toString());\r\n }\r\n public openRequestDemo() {\r\n this.dialogRef.close({\r\n mode: 'request-demo',\r\n });\r\n }\r\n\r\n public openForgotPassword() {\r\n this.dialogRef.close({\r\n mode: 'forgot-password',\r\n });\r\n }\r\n}\r\n","\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { FbosService } from 'src/app/services/fbos.service';\r\n\r\n@Component({\r\n selector: 'app-manage-confirmation',\r\n styleUrls: ['./manage-confirmation.component.scss'],\r\n templateUrl: './manage-confirmation.component.html',\r\n})\r\nexport class ManageConfirmationComponent {\r\n loading = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private fboService: FbosService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n onConfirm(): void {\r\n if (this.data.group) {\r\n this.dialogRef.close(true);\r\n } else {\r\n this.loading = true;\r\n this.fboService.manageFbo(this.data.fboId).subscribe(() => {\r\n this.loading = false;\r\n this.dialogRef.close(true);\r\n });\r\n }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

{{ data.title }}

\r\n
\r\n
\r\n {{ data.description }}\r\n
\r\n
\r\n
\r\n \r\n {{ !loading ? \"Confirm\" : \"\" }}\r\n \r\n \r\n \r\n
\r\n","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport {\r\n Component,\r\n ElementRef,\r\n forwardRef,\r\n Input,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { FormControl, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\nexport interface MultiSelectElement {\r\n label: string;\r\n value: any;\r\n}\r\nexport interface dataSourceFields {\r\n text: string;\r\n value: string;\r\n}\r\n@Component({\r\n selector: 'app-multiselect-autocomplete',\r\n templateUrl: './multiselect-autocomplete.component.html',\r\n styleUrls: ['./multiselect-autocomplete.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MultiselectAutocompleteComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class MultiselectAutocompleteComponent {\r\n @Input() label: string = 'Select filters';\r\n @Input() selectable: boolean = true;\r\n @Input() removable: boolean = true;\r\n @Input() selectedOptions: MultiSelectElement[] = [];\r\n @Input() dataSource: any[] | MultiSelectElement[] = [];\r\n @Input() enableAddNew: boolean = false;\r\n @Input() fields: dataSourceFields = { text: 'label', value: 'value' };\r\n\r\n @ViewChild('optionInput') optionInput: ElementRef;\r\n\r\n // ControlValueAccessor methods\r\n private onChange: (value: any) => void = () => {};\r\n private onTouched: () => void = () => {};\r\n\r\n separatorKeysCodes: number[] = [ENTER, COMMA];\r\n optionCtrl = new FormControl();\r\n filteredOptions: Observable;\r\n inputPlaceholder = this.enableAddNew\r\n ? 'Add new Option...'\r\n : 'Search for an option...';\r\n\r\n constructor(private elementRef: ElementRef) {\r\n this.filteredOptions = this.optionCtrl.valueChanges.pipe(\r\n startWith(null),\r\n map((option: string | null) =>\r\n option ? this._filter(option) : this.dataSource.slice()\r\n )\r\n );\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.dataSource) {\r\n this.dataSource = changes.dataSource.currentValue.map((x) => ({ label: x[this.fields.text], value: x[this.fields.value] }));\r\n }\r\n }\r\n add(event: MatChipInputEvent): void {\r\n if (!this.enableAddNew) return;\r\n\r\n const inputValue = (event.value || '').trim();\r\n\r\n // Find the item in allFruits by label\r\n const item = this.dataSource.find(\r\n (option) => option.label.toLowerCase() === inputValue.toLowerCase()\r\n );\r\n\r\n if (item) {\r\n this.selectedOptions.push(item);\r\n this.onChange(this.selectedOptions.map((x) => x.value)); // Notify Angular Forms\r\n }\r\n\r\n // Clear the input value\r\n event.chipInput!.clear();\r\n\r\n this.optionCtrl.setValue(null);\r\n }\r\n\r\n remove(fruit: MultiSelectElement): void {\r\n const index = this.selectedOptions.indexOf(fruit);\r\n\r\n if (index >= 0) {\r\n this.selectedOptions.splice(index, 1);\r\n this.onChange(this.selectedOptions.map((x) => x.value)); // Notify Angular Forms\r\n }\r\n }\r\n\r\n selected(event: any): void {\r\n const item = this.dataSource.find(\r\n (option) => option.label === event.option.viewValue\r\n );\r\n\r\n if (item && !this.selectedOptions.includes(item)) {\r\n this.selectedOptions.push(item);\r\n this.onChange(this.selectedOptions.map((x) => x.value)); // Notify Angular Forms\r\n }\r\n\r\n this.optionCtrl.setValue(null);\r\n\r\n this.blurChipInput();\r\n }\r\n blurChipInput(): void {\r\n const inputElement =\r\n this.elementRef.nativeElement.querySelector('input');\r\n inputElement.blur();\r\n }\r\n\r\n // Angular Forms ControlValueAccessor methods\r\n writeValue(value: any): void {\r\n if (value) {\r\n this.selectedOptions = value;\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n private _filter(value: string): MultiSelectElement[] {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.dataSource.filter((option) =>\r\n option.label.toLowerCase().includes(filterValue)\r\n );\r\n }\r\n}\r\n","\r\n {{ label }}\r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ option.label }}\r\n \r\n \r\n\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: '[notification]',\r\n styleUrls: ['./notification.component.scss'],\r\n templateUrl: './notification.component.html',\r\n})\r\nexport class NotificationComponent {\r\n @Input() block = false;\r\n @Input() gradient = false;\r\n @Input() disabled = false;\r\n @Input() outline = false;\r\n @Input() lineStyle: string;\r\n @Input() align = 'center';\r\n @Input() size = 'default';\r\n @Input() view = 'default';\r\n @Input() padding = 'default';\r\n @Input() shape: number | string;\r\n @Input() beforeIcon: string;\r\n @Input() afterIcon: string;\r\n @Input() iconAnimation = false;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

{{ data.title }}

\r\n
\r\n
\r\n {{ data.text }}\r\n
\r\n
\r\n
\r\n  \r\n
\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from '@angular/core';\r\n\r\nexport enum PresetDateFilterEnum {\r\n sevenDays = '7D',\r\n oneMonth = '1M',\r\n sixMonths = '6M',\r\n currentYearToDate = 'YTD',\r\n oneYear = '1Y',\r\n}\r\nexport interface SelectedDateFilter {\r\n selectedFilter: PresetDateFilterEnum | null;\r\n offsetDate: Date;\r\n limitDate: Date;\r\n}\r\n@Component({\r\n selector: 'app-preset-date-filter',\r\n templateUrl: './preset-date-filter.component.html',\r\n styleUrls: ['./preset-date-filter.component.scss'],\r\n})\r\nexport class PresetDateFilterComponent implements OnInit {\r\n @Input() defaultFilter: PresetDateFilterEnum;\r\n @Output() selectedFilterChange = new EventEmitter();\r\n\r\n public selectedFilter: PresetDateFilterEnum;\r\n dateFilterValues = Object.values(PresetDateFilterEnum) as string[];\r\n\r\n currentDate: Date = new Date();\r\n startDate: Date = new Date();\r\n\r\n constructor() {\r\n this.defaultFilter = PresetDateFilterEnum.oneMonth;\r\n }\r\n\r\n ngOnInit() {\r\n this.selectedFilter = PresetDateFilterEnum.oneMonth;\r\n let filter = this.getPresetDatesFilters(this.selectedFilter);\r\n }\r\n\r\n onToggleChange(event: any) {\r\n let filter = this.getPresetDatesFilters(event.value);\r\n this.selectedFilterChange.emit(filter);\r\n }\r\n private getPresetDatesFilters(value: PresetDateFilterEnum): SelectedDateFilter {\r\n this.startDate = new Date(this.currentDate);\r\n switch (value) {\r\n case PresetDateFilterEnum.sevenDays:\r\n this.calculateDateMinusDays(7);\r\n break;\r\n case PresetDateFilterEnum.oneMonth:\r\n this.calculateDateMinusMonth(1);\r\n break;\r\n case PresetDateFilterEnum.sixMonths:\r\n this.calculateDateMinusMonth(6);\r\n break;\r\n case PresetDateFilterEnum.oneYear:\r\n this.calculateDateMinusYears(1);\r\n break;\r\n case PresetDateFilterEnum.currentYearToDate:\r\n this.calculateFirstDayOfCurrentYear();\r\n break;\r\n }\r\n\r\n return {\r\n selectedFilter: value,\r\n offsetDate: this.startDate,\r\n limitDate: this.currentDate,\r\n }\r\n }\r\n private calculateDateMinusDays(days: number) {\r\n this.startDate.setDate(this.currentDate.getDate() - days);\r\n }\r\n\r\n private calculateDateMinusMonth(months: number) {\r\n this.startDate.setMonth(this.currentDate.getMonth() - months);\r\n }\r\n\r\n private calculateDateMinusYears(years: number) {\r\n this.startDate.setFullYear(this.currentDate.getFullYear() - years);\r\n }\r\n private calculateFirstDayOfCurrentYear() {\r\n this.startDate = new Date(this.currentDate.getFullYear(), 0, 1);\r\n }\r\n}\r\n","\r\n \r\n \r\n {{enumValue}}\r\n \r\n \r\n\r\n","import { Component, Inject, OnInit, SimpleChanges } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface FeeAndTaxBreakDown {\r\n omitCheckChanged: any;\r\n customerMargin: any;\r\n displayMode: any;\r\n fboPrice: any;\r\n feesAndTaxes: any;\r\n marginType: any;\r\n discountType: any;\r\n validDepartureTypes: any;\r\n validFlightTypes: any;\r\n}\r\n\r\n@Component({\r\n selector: 'app-fee-and-tax-breakdown-dialog-wrapper',\r\n templateUrl: './fee-and-tax-breakdown-dialog-wrapper.component.html',\r\n styleUrls: ['./fee-and-tax-breakdown-dialog-wrapper.component.scss']\r\n})\r\nexport class FeeAndTaxBreakdownDialogWrapperComponent implements OnInit {\r\n\r\n constructor(@Inject(MAT_DIALOG_DATA) public data: FeeAndTaxBreakDown) {\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n}\r\n","\r\n","import { ActivatedRoute } from '@angular/router';\r\nimport {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\nimport { forkJoin, Observable } from 'rxjs';\r\n\r\nimport { ApplicableTaxFlights } from '../../../enums/applicable-tax-flights';\r\nimport { FlightTypeClassifications } from '../../../enums/flight-type-classifications';\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport {\r\n FeeAndTaxBreakdownComponent,\r\n FeeAndTaxBreakdownDisplayModes,\r\n} from '../fee-and-tax-breakdown/fee-and-tax-breakdown.component';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { FeeAndTaxBreakDown, FeeAndTaxBreakdownDialogWrapperComponent } from './fee-and-tax-breakdown-dialog-wrapper/fee-and-tax-breakdown-dialog-wrapper.component';\r\n\r\nexport enum PriceBreakdownDisplayTypes {\r\n SingleColumnAllFlights = 0,\r\n TwoColumnsDomesticInternationalOnly = 1,\r\n TwoColumnsApplicableFlightTypesOnly = 2,\r\n FourColumnsAllRules = 3,\r\n}\r\n\r\n@Component({\r\n selector: 'price-breakdown',\r\n styleUrls: ['./price-breakdown.component.scss'],\r\n templateUrl: './price-breakdown.component.html',\r\n})\r\nexport class PriceBreakdownComponent implements OnInit {\r\n @ViewChild('feeAndTaxBreakdown')\r\n private feeAndTaxBreakdown: FeeAndTaxBreakdownComponent;\r\n @ViewChild('dynamicFeeAndTaxBreakdown')\r\n private dynamicFeeAndTaxBreakdown: FeeAndTaxBreakdownComponent;\r\n\r\n @Input() priceTemplateId;\r\n @Input() tailNumber = '';\r\n @Input() customerInfoByGroupId = 0;\r\n @Input() feesAndTaxes: Array;\r\n @Input() hideFeeAndTaxGeneralBreakdown = false;\r\n @Input() hidePriceTierBreakdown = false;\r\n @Input() feeAndTaxDisplayMode: FeeAndTaxBreakdownDisplayModes =\r\n FeeAndTaxBreakdownDisplayModes.PriceTaxBreakdown;\r\n @Input() showFeeAndTaxLineSeparator = false;\r\n @Input() tooltipPlacement = 'top-right';\r\n @Input() priceBreakdownLoader = 'price-breakdown-loader';\r\n @Input() hideTooltips = false;\r\n @Input() isMember: boolean;\r\n @Output() omitCheckChanged: EventEmitter = new EventEmitter();\r\n @Output() calculationsComplated: EventEmitter =\r\n new EventEmitter();\r\n @Output() customerActiveCheckCompleted: EventEmitter =\r\n new EventEmitter();\r\n @Output() pricesExpiredCheckCompleted: EventEmitter =\r\n new EventEmitter();\r\n\r\n public internationalCommercialPricing: any;\r\n public internationalPrivatePricing: any;\r\n public domesticCommercialPricing: any;\r\n public domesticPrivatePricing: any;\r\n public internationalCommercialFeesAndTaxes: Array;\r\n public internationalPrivateFeesAndTaxes: Array;\r\n public domesticCommercialFeesAndTaxes: Array;\r\n public domesticPrivateFeesAndTaxes: Array;\r\n public feeAndTaxCloneForPopOver: Array;\r\n public priceBreakdownDisplayType: PriceBreakdownDisplayTypes =\r\n PriceBreakdownDisplayTypes.SingleColumnAllFlights;\r\n public activeHoverPriceItem: any = {};\r\n public activeHoverDeparturetypes: Array = [];\r\n public activeHoverFlightTypes: Array = [];\r\n public defaultValidDepartureTypes: Array = [0, 1, 2, 3];\r\n public defaultValidFlightTypes: Array = [0, 1, 2, 3];\r\n public isCustomerActive = true;\r\n public isPricesExpired = false;\r\n\r\n dialogRef: MatDialogRef;\r\n\r\n constructor(\r\n private feesAndTaxesService: FbofeesandtaxesService,\r\n private sharedService: SharedService,\r\n private fboPricesService: FbopricesService,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private customerInfoByGroupService: CustomerinfobygroupService ,\r\n private route :ActivatedRoute,\r\n public dialog: MatDialog\r\n ) {\r\n\r\n this.priceTemplateId = this.route.snapshot.paramMap.get('id');\r\n }\r\n\r\n ngOnInit(): void {\r\n\r\n this.prepareDefaultSettings();\r\n this.performCalculations();\r\n }\r\n public openFeeAndTaxBreakdownPopUp(){\r\n if(this.hideTooltips) return;\r\n const dialogData: FeeAndTaxBreakDown = {\r\n omitCheckChanged: this.omitChanged,\r\n customerMargin: this.activeHoverPriceItem.customerMarginAmount,\r\n displayMode: 0,\r\n fboPrice: this.activeHoverPriceItem.fboPrice,\r\n feesAndTaxes: this.feeAndTaxCloneForPopOver,\r\n marginType: this.activeHoverPriceItem.marginType,\r\n discountType: this.activeHoverPriceItem.discountType,\r\n validDepartureTypes: this.activeHoverDeparturetypes,\r\n validFlightTypes: this.activeHoverFlightTypes,\r\n };\r\n\r\n this.dialogRef = this.dialog.open(FeeAndTaxBreakdownDialogWrapperComponent, {\r\n data: dialogData\r\n });\r\n\r\n this.dialogRef.afterClosed().subscribe(result => {\r\n });\r\n }\r\n public omitChanged(fee: any): void {\r\n if (fee.isOmitted) {\r\n fee.omittedFor = (this.feeAndTaxDisplayMode == FeeAndTaxBreakdownDisplayModes.CustomerOmitting && this.customerInfoByGroupId > 0 ? 'C' : 'P');\r\n } else {\r\n fee.omittedFor = '';\r\n }\r\n this.omitCheckChanged.emit(fee);\r\n }\r\n\r\n public mouseEnterPriceItem(\r\n priceItem: any,\r\n departureTypes: Array,\r\n flightTypes: Array\r\n ): void {\r\n\r\n this.activeHoverPriceItem = priceItem;\r\n console.log(this.activeHoverPriceItem);\r\n this.activeHoverDeparturetypes = departureTypes;\r\n this.activeHoverFlightTypes = flightTypes;\r\n if (priceItem.feesAndTaxes != null) {\r\n this.feeAndTaxCloneForPopOver = [];\r\n priceItem.feesAndTaxes.forEach((val) =>\r\n this.feeAndTaxCloneForPopOver.push(Object.assign({}, val))\r\n );\r\n } else {\r\n this.feeAndTaxCloneForPopOver = [];\r\n }\r\n const self = this;\r\n setTimeout(() => {\r\n if (self.dynamicFeeAndTaxBreakdown) {\r\n self.dynamicFeeAndTaxBreakdown.performRecalculation();\r\n }\r\n });\r\n }\r\n\r\n public performRecalculation(): void {\r\n this.performCalculations();\r\n }\r\n\r\n // Private Methods\r\n private prepareDefaultSettings(): void {\r\n if (\r\n this.feeAndTaxDisplayMode ===\r\n FeeAndTaxBreakdownDisplayModes.CustomerOmitting\r\n ) {\r\n this.defaultValidDepartureTypes = [0, 1, 2, 3];\r\n this.defaultValidFlightTypes = [0, 1, 2, 3];\r\n }\r\n }\r\n\r\n private performCalculations(): void {\r\n this.NgxUiLoader.startLoader(this.priceBreakdownLoader);\r\n if (!this.feesAndTaxes) {\r\n this.loadFeesAndTaxes();\r\n } else {\r\n this.groupFeesAndTaxes();\r\n this.determineDisplayType();\r\n this.loadCalculations();\r\n }\r\n }\r\n\r\n private loadFeesAndTaxes() {\r\n this.feesAndTaxesService\r\n .getByFbo(this.sharedService.currentUser.fboId)\r\n .subscribe((response: any) => {\r\n\r\n this.feesAndTaxes = response;\r\n this.groupFeesAndTaxes();\r\n this.determineDisplayType();\r\n this.loadCalculations();\r\n\r\n });\r\n }\r\n\r\n private groupFeesAndTaxes() {\r\n if (!this.feesAndTaxes) {\r\n return;\r\n }\r\n this.domesticCommercialFeesAndTaxes = this.feesAndTaxes.filter(\r\n (fee) =>\r\n (fee.departureType === 1 || fee.departureType === 3) &&\r\n (fee.flightTypeClassification === 2 ||\r\n fee.flightTypeClassification === 3)\r\n );\r\n this.domesticPrivateFeesAndTaxes = this.feesAndTaxes.filter(\r\n (fee) =>\r\n (fee.departureType === 1 || fee.departureType === 3) &&\r\n (fee.flightTypeClassification === 1 ||\r\n fee.flightTypeClassification === 3)\r\n );\r\n this.internationalCommercialFeesAndTaxes = this.feesAndTaxes.filter(\r\n (fee) =>\r\n (fee.departureType === 2 || fee.departureType === 3) &&\r\n (fee.flightTypeClassification === 2 ||\r\n fee.flightTypeClassification === 3)\r\n );\r\n this.internationalPrivateFeesAndTaxes = this.feesAndTaxes.filter(\r\n (fee) =>\r\n (fee.departureType === 2 || fee.departureType === 3) &&\r\n (fee.flightTypeClassification === 1 ||\r\n fee.flightTypeClassification === 3)\r\n );\r\n }\r\n\r\n private determineDisplayType(): void {\r\n if (!this.feesAndTaxes) {\r\n return;\r\n }\r\n\r\n let hasDepartureTypeRule = false;\r\n let hasFlightTypeRule = false;\r\n\r\n this.feesAndTaxes.forEach((fee) => {\r\n if (fee.departureType === 1 || fee.departureType === 2) {\r\n hasDepartureTypeRule = true;\r\n }\r\n if (\r\n fee.flightTypeClassification === 1 ||\r\n fee.flightTypeClassification === 2\r\n ) {\r\n hasFlightTypeRule = true;\r\n }\r\n });\r\n\r\n if (!hasDepartureTypeRule && !hasFlightTypeRule) {\r\n this.priceBreakdownDisplayType =\r\n PriceBreakdownDisplayTypes.SingleColumnAllFlights;\r\n } else if (!hasDepartureTypeRule && hasFlightTypeRule) {\r\n this.priceBreakdownDisplayType =\r\n PriceBreakdownDisplayTypes.TwoColumnsApplicableFlightTypesOnly;\r\n } else if (hasDepartureTypeRule && !hasFlightTypeRule) {\r\n this.priceBreakdownDisplayType =\r\n PriceBreakdownDisplayTypes.TwoColumnsDomesticInternationalOnly;\r\n } else if (hasDepartureTypeRule && hasFlightTypeRule) {\r\n this.priceBreakdownDisplayType =\r\n PriceBreakdownDisplayTypes.FourColumnsAllRules;\r\n }\r\n }\r\n\r\n private loadCalculations() {\r\n forkJoin([\r\n this.loadInternationalCommercialPricing(),\r\n this.loadInternationalPrivatePricing(),\r\n this.loadDomesticCommercialPricing(),\r\n this.loadDomesticPrivatePricing(),\r\n this.loadCustomerInfoByGroup(),\r\n ]).subscribe((responseList: any[]) => {\r\n this.NgxUiLoader.stopLoader(this.priceBreakdownLoader);\r\n if (!responseList) {\r\n alert('There was a problem fetching prices.');\r\n }\r\n\r\n this.internationalCommercialPricing = responseList[0];\r\n this.internationalPrivatePricing = responseList[1];\r\n this.domesticCommercialPricing = responseList[2];\r\n this.domesticPrivatePricing = responseList[3];\r\n const customerInfoByGroup = responseList[4];\r\n\r\n console.log()\r\n\r\n //If no result was returned for the customer then this wasn't a customer-level price check so mark it as active.\r\n //Otherwise check the actual active flag of the customer.\r\n if (!this.domesticPrivatePricing || this.domesticPrivatePricing.pricingList[0].fboPrice == null)\r\n this.isPricesExpired = true;\r\n else\r\n this.isPricesExpired = false;\r\n this.pricesExpiredCheckCompleted.emit(this.isPricesExpired);\r\n\r\n this.isCustomerActive =\r\n !customerInfoByGroup || customerInfoByGroup.active;\r\n this.customerActiveCheckCompleted.emit(this.isCustomerActive);\r\n\r\n this.feeAndTaxCloneForPopOver = [];\r\n this.feesAndTaxes.forEach((val) =>\r\n this.feeAndTaxCloneForPopOver.push(Object.assign({}, val))\r\n );\r\n\r\n const self = this;\r\n setTimeout(() => {\r\n if (self.feeAndTaxBreakdown) {\r\n self.feeAndTaxBreakdown.performRecalculation();\r\n }\r\n });\r\n this.calculationsComplated.emit([\r\n this.internationalCommercialPricing,\r\n this.internationalPrivatePricing,\r\n this.domesticCommercialPricing,\r\n this.domesticPrivatePricing,\r\n ]);\r\n });\r\n }\r\n\r\n private loadInternationalCommercialPricing(): Observable {\r\n return this.fboPricesService.getFuelPricesForCompany({\r\n customerInfoByGroupId: this.customerInfoByGroupId,\r\n departureType: ApplicableTaxFlights.InternationalOnly,\r\n fboid: this.sharedService.currentUser.fboId,\r\n flightTypeClassification: FlightTypeClassifications.Commercial,\r\n groupId: this.sharedService.currentUser.groupId,\r\n icao: this.sharedService.currentUser.icao,\r\n pricingTemplateId: this.priceTemplateId,\r\n replacementFeesAndTaxes: this.feesAndTaxes,\r\n tailNumber: this.tailNumber,\r\n });\r\n }\r\n\r\n private loadInternationalPrivatePricing(): Observable {\r\n return this.fboPricesService.getFuelPricesForCompany({\r\n customerInfoByGroupId: this.customerInfoByGroupId,\r\n departureType: ApplicableTaxFlights.InternationalOnly,\r\n fboid: this.sharedService.currentUser.fboId,\r\n flightTypeClassification: FlightTypeClassifications.Private,\r\n groupId: this.sharedService.currentUser.groupId,\r\n icao: this.sharedService.currentUser.icao,\r\n pricingTemplateId:this.priceTemplateId,\r\n replacementFeesAndTaxes: this.feesAndTaxes,\r\n tailNumber: this.tailNumber,\r\n });\r\n }\r\n\r\n private loadDomesticCommercialPricing(): Observable {\r\n return this.fboPricesService.getFuelPricesForCompany({\r\n customerInfoByGroupId: this.customerInfoByGroupId,\r\n departureType: ApplicableTaxFlights.DomesticOnly,\r\n fboid: this.sharedService.currentUser.fboId,\r\n flightTypeClassification: FlightTypeClassifications.Commercial,\r\n groupId: this.sharedService.currentUser.groupId,\r\n icao: this.sharedService.currentUser.icao,\r\n pricingTemplateId: this.priceTemplateId,\r\n replacementFeesAndTaxes: this.feesAndTaxes,\r\n tailNumber: this.tailNumber,\r\n });\r\n }\r\n\r\n private loadDomesticPrivatePricing(): Observable {\r\n return this.fboPricesService.getFuelPricesForCompany({\r\n customerInfoByGroupId: this.customerInfoByGroupId,\r\n departureType: ApplicableTaxFlights.DomesticOnly,\r\n fboid: this.sharedService.currentUser.fboId,\r\n flightTypeClassification: FlightTypeClassifications.Private,\r\n groupId: this.sharedService.currentUser.groupId,\r\n icao: this.sharedService.currentUser.icao,\r\n pricingTemplateId: this.priceTemplateId,\r\n replacementFeesAndTaxes: this.feesAndTaxes,\r\n tailNumber: this.tailNumber,\r\n });\r\n }\r\n\r\n private loadCustomerInfoByGroup(): Observable {\r\n return this.customerInfoByGroupService.get({\r\n oid: this.customerInfoByGroupId,\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
Customer is inactive
\r\n
\r\n
\r\n
Pricing expired. Please update your cost and retail values.
\r\n
\r\n
\r\n
\r\n \r\n
0 &&\r\n domesticPrivatePricing.pricingList[0].fboPrice\r\n \"\r\n >\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
Volume Tier
\r\n
\r\n
All Flights
\r\n
\r\n
\r\n {{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .minGallons\r\n }}\r\n -\r\n {{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .maxGallons\r\n }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n internationalPrivatePricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
Volume Tier
\r\n
\r\n
Domestic Flights
\r\n
\r\n
International Flights
\r\n
\r\n
\r\n {{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .minGallons\r\n }}\r\n -\r\n {{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .maxGallons\r\n }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n
\r\n ${{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n ${{\r\n domesticCommercialPricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
Volume Tier
\r\n
\r\n
Private Flights
\r\n
\r\n
Commercial Flights
\r\n
\r\n
\r\n {{\r\n internationalCommercialPricing\r\n .pricingList[indexOfRow]\r\n .minGallons | decimalPrecision\r\n }}\r\n -\r\n {{\r\n internationalCommercialPricing\r\n .pricingList[indexOfRow]\r\n .maxGallons | decimalPrecision\r\n }}\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n internationalCommercialPricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n internationalPrivatePricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n domesticCommercialPricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n ${{\r\n domesticPrivatePricing\r\n .pricingList[indexOfRow]\r\n .allInPrice\r\n | decimalPrecision\r\n }}\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
Volume Tier
\r\n
\r\n
Int/Comm
\r\n
\r\n
Int/Private
\r\n
\r\n
Dom/Comm
\r\n
\r\n
Dom/Private
\r\n
\r\n
\r\n {{\r\n internationalCommercialPricing\r\n .pricingList[indexOfRow]\r\n .minGallons\r\n }}\r\n -\r\n {{\r\n internationalCommercialPricing\r\n .pricingList[indexOfRow]\r\n .maxGallons\r\n }}\r\n
\r\n
\r\n\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 {\r\n AfterViewInit,\r\n Component,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Enums\r\nimport { EnumOptions } from '../../../models/enum-options';\r\n// Model\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\n// Services\r\nimport { AircraftsService } from '../../../services/aircrafts.service';\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { FbofeesandtaxesService } from '../../../services/fbofeesandtaxes.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { PriceBreakdownComponent } from '../../../shared/components/price-breakdown/price-breakdown.component';\r\n\r\ninterface TailLookupResponse {\r\n template?: string;\r\n company?: string;\r\n makeModel?: string;\r\n pricingList: Array;\r\n rampFee: any;\r\n}\r\n\r\ninterface PriceLookupRequest {\r\n pricingTemplateId: number;\r\n tailNumber: string;\r\n customerInfoByGroupId: number;\r\n}\r\n\r\nenum PriceCheckerLookupTypes {\r\n ByCustomer = 0,\r\n ByTail = 1,\r\n ByPricingTemplate = 2,\r\n}\r\n\r\n@Component({\r\n selector: 'price-checker',\r\n styleUrls: ['./price-checker.component.scss'],\r\n templateUrl: './price-checker.component.html',\r\n})\r\nexport class PriceCheckerComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChild('priceBreakdownPreview')\r\n private priceBreakdownPreview: PriceBreakdownComponent;\r\n @Input() hideFeeAndTaxGeneralBreakdown = false;\r\n @Input() hidePriceTierBreakdown = false;\r\n @Input() hideTooltips = false;\r\n\r\n public customerForTailLookup: any;\r\n public tailNumberForTailLookup = '';\r\n public customersForTail: Array;\r\n public tailNumberFormControlSubscription: any;\r\n public locationChangedSubscription: any;\r\n public customerForCustomerLookup: any;\r\n public tailNumberForCustomerLookup = '';\r\n public allCustomers: Array;\r\n public allTailNumbers: Array;\r\n public aircraftForCustomer: Array;\r\n public pricingTemplateId = 0;\r\n public pricingTemplates: Array;\r\n public priceCheckerLookupType: PriceCheckerLookupTypes =\r\n PriceCheckerLookupTypes.ByCustomer;\r\n public priceLookupInfo: TailLookupResponse;\r\n public tailLookupError: boolean;\r\n public strictApplicableTaxFlightOptions: Array =\r\n EnumOptions.strictApplicableTaxFlightOptions;\r\n public strictFlightTypeClassificationOptions: Array =\r\n EnumOptions.strictFlightTypeClassificationOptions;\r\n public sampleCalculation: PriceLookupRequest;\r\n public tailLoader = 'tail-loader';\r\n public isPriceBreakdownCustomerActive = true;\r\n public isPriceBreakdownPricesExpired = false;\r\n\r\n public feesAndTaxes: Array;\r\n\r\n public tab: string = 'customer';\r\n\r\n constructor(\r\n private sharedService: SharedService,\r\n private aircraftsService: AircraftsService,\r\n private NgxUiLoader: NgxUiLoaderService,\r\n private pricingTemplateService: PricingtemplatesService,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private customerAircraftsService: CustomeraircraftsService,\r\n private fboFeesAndTaxesService: FbofeesandtaxesService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resetAll();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.locationChangedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.pricingTemplateId = 0;\r\n this.resetAll();\r\n }\r\n });\r\n\r\n this.tab = 'customer';\r\n this.priceCheckerLookupType = 0;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.locationChangedSubscription) {\r\n this.locationChangedSubscription.unsubscribe();\r\n }\r\n if (this.tailNumberFormControlSubscription) {\r\n this.tailNumberFormControlSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n public resetAll(): void {\r\n this.loadPricingTemplates();\r\n this.loadAllCustomers();\r\n this.loadAllTailNumbers();\r\n }\r\n\r\n public displayCustomerName(customer: any) {\r\n return customer ? customer.company : customer;\r\n }\r\n\r\n public customerForLookupChanged(changedValue: any) {\r\n this.customerForCustomerLookup = changedValue;\r\n this.NgxUiLoader.startLoader(this.tailLoader);\r\n this.tailNumberForCustomerLookup = '';\r\n\r\n this.customerAircraftsService\r\n .getCustomerAircraftsByGroupAndCustomerId(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n this.customerForCustomerLookup.customerId\r\n )\r\n .subscribe((response: any) => {\r\n this.NgxUiLoader.stopLoader(this.tailLoader);\r\n if (!response) {\r\n alert(\r\n 'There was an issue loading aircraft for the specified company.'\r\n );\r\n }\r\n this.aircraftForCustomer = response;\r\n if (this.aircraftForCustomer.length > 0) {\r\n this.tailNumberForCustomerLookup =\r\n this.aircraftForCustomer[0].tailNumber;\r\n } else {\r\n this.tailNumberForCustomerLookup = '';\r\n }\r\n this.lookupPricing();\r\n });\r\n }\r\n\r\n public tailNumberLookupChanged(changedValue: any) {\r\n this.NgxUiLoader.startLoader(this.tailLoader);\r\n this.customerForTailLookup = null;\r\n this.tailNumberForTailLookup = changedValue;\r\n this.aircraftsService\r\n .getCustomersByTail(\r\n this.sharedService.currentUser.groupId,\r\n this.tailNumberForTailLookup\r\n )\r\n .subscribe((response: any) => {\r\n this.NgxUiLoader.stopLoader(this.tailLoader);\r\n if (!response) {\r\n this.customersForTail = [];\r\n this.customerForTailLookup = null;\r\n return;\r\n }\r\n this.customersForTail = response;\r\n if (this.customersForTail.length > 0) {\r\n this.customerForTailLookup = this.customersForTail[0];\r\n this.lookupPricing();\r\n }\r\n });\r\n }\r\n\r\n public lookupPricing() {\r\n const pricingTemplateId = this.getPricingTemplateId();\r\n const tailNumber = this.getTailNumber();\r\n const customerInfoByGroupId = this.getCustomerInfoByGroupId();\r\n\r\n if (pricingTemplateId > 0 || customerInfoByGroupId > 0) {\r\n this.sampleCalculation = {\r\n customerInfoByGroupId,\r\n pricingTemplateId,\r\n tailNumber,\r\n };\r\n }\r\n\r\n if (\r\n this.priceCheckerLookupType ===\r\n PriceCheckerLookupTypes.ByPricingTemplate\r\n ) {\r\n this.loadPricingTemplateFeesAndTaxes();\r\n } else {\r\n this.loadCustomerFeesAndTaxes();\r\n }\r\n }\r\n\r\n public onOptionChange(event: any): void {\r\n this.tab = event.value;\r\n\r\n var index = 0;\r\n if (this.tab == \"tail\")\r\n index = 1;\r\n else if (this.tab == \"template\")\r\n index = 2;\r\n this.priceCheckerLookupType = index;\r\n this.priceLookupInfo = null;\r\n this.sampleCalculation = null;\r\n this.lookupPricing();\r\n }\r\n\r\n public priceBreakdownCalculationsCompleted(\r\n calculationResults: any[]\r\n ): void {\r\n if (!calculationResults || !calculationResults.length) {\r\n this.priceLookupInfo = null;\r\n return;\r\n }\r\n this.priceLookupInfo = calculationResults[0];\r\n try {\r\n if (this.priceLookupInfo.pricingList[0].feesAndTaxes != null)\r\n this.feesAndTaxes = this.priceLookupInfo.pricingList[0].feesAndTaxes;\r\n } catch (e) {\r\n\r\n }\r\n }\r\n\r\n public priceTemplateChanged(): void {\r\n this.lookupPricing();\r\n }\r\n\r\n public customerForLookupTailChanged(): void {\r\n this.lookupPricing();\r\n }\r\n\r\n public tailNumberLookupCustomerChanged(): void {\r\n this.lookupPricing();\r\n }\r\n\r\n public refresh(): void {\r\n this.loadPricingTemplates();\r\n }\r\n\r\n public priceBreakdownCustomerActiveCheckCompleted(event: any): void {\r\n this.isPriceBreakdownCustomerActive = event;\r\n }\r\n\r\n public priceBreakdownPricesExpiredCheckCompleted(event: any): void {\r\n this.isPriceBreakdownPricesExpired = event;\r\n }\r\n\r\n // Private Methods\r\n private loadPricingTemplates(): void {\r\n this.NgxUiLoader.startLoader(this.tailLoader);\r\n this.pricingTemplateService\r\n .getByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((response: any) => {\r\n this.NgxUiLoader.stopLoader(this.tailLoader);\r\n this.pricingTemplates = response;\r\n if (!this.pricingTemplateId || this.pricingTemplateId === 0) {\r\n for (const pricingTemplate of this.pricingTemplates) {\r\n if (pricingTemplate.default) {\r\n this.pricingTemplateId = pricingTemplate.oid;\r\n }\r\n }\r\n if (\r\n this.pricingTemplateId === 0 &&\r\n this.pricingTemplates.length > 0\r\n ) {\r\n this.pricingTemplateId = this.pricingTemplates[0].oid;\r\n }\r\n }\r\n\r\n this.lookupPricing();\r\n });\r\n }\r\n\r\n private loadAllCustomers(): void {\r\n this.customerInfoByGroupService\r\n .getByGroupAndFbo(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe((response: any) => {\r\n if (!response) {\r\n alert(\r\n 'There was an error pulling customer information for price checking.'\r\n );\r\n }\r\n this.allCustomers = response;\r\n });\r\n }\r\n\r\n private loadAllTailNumbers(): void {\r\n this.customerAircraftsService\r\n .getAircraftsListByGroupAndFbo(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe((data: Array) => {\r\n this.allTailNumbers = data.map((t) => t.tailNumber);\r\n });\r\n }\r\n\r\n private getTailNumber(): string {\r\n if (\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByCustomer\r\n ) {\r\n return this.tailNumberForCustomerLookup;\r\n } else if (\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByTail\r\n ) {\r\n return this.tailNumberForTailLookup;\r\n } else {\r\n return '';\r\n }\r\n }\r\n\r\n private getCustomerInfoByGroupId(): number {\r\n if (\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByCustomer\r\n ) {\r\n return !this.customerForCustomerLookup\r\n ? 0\r\n : this.customerForCustomerLookup.customerInfoByGroupId;\r\n } else if (\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByTail\r\n ) {\r\n return !this.customerForTailLookup\r\n ? 0\r\n : this.customerForTailLookup.oid;\r\n } else {\r\n return 0;\r\n }\r\n }\r\n\r\n private getPricingTemplateId(): number {\r\n if (\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByCustomer\r\n ) {\r\n return 0;\r\n } else if (\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByTail\r\n ) {\r\n return 0;\r\n } else {\r\n return this.pricingTemplateId;\r\n }\r\n }\r\n\r\n private loadPricingTemplateFeesAndTaxes(): void {\r\n this.fboFeesAndTaxesService\r\n .getByFboAndPricingTemplate(\r\n this.sharedService.currentUser.fboId,\r\n this.pricingTemplateId\r\n )\r\n .subscribe((response: any[]) => {\r\n this.feesAndTaxes = response;\r\n if (!response)\r\n this.feesAndTaxes = [];\r\n const self = this;\r\n setTimeout(() => {\r\n self.priceBreakdownPreview?.performRecalculation();\r\n });\r\n });\r\n }\r\n\r\n private loadCustomerFeesAndTaxes(): void {\r\n const customerId =\r\n this.priceCheckerLookupType === PriceCheckerLookupTypes.ByCustomer\r\n ? this.customerForCustomerLookup?.customerId\r\n : this.customerForTailLookup?.customerId;\r\n\r\n if (!customerId) {\r\n return;\r\n }\r\n\r\n this.fboFeesAndTaxesService\r\n .getByFboAndCustomer(\r\n this.sharedService.currentUser.fboId,\r\n customerId\r\n )\r\n .subscribe((response: any[]) => {\r\n this.feesAndTaxes = response;\r\n if (!response)\r\n this.feesAndTaxes = [];\r\n const self = this;\r\n setTimeout(() => {\r\n self.priceBreakdownPreview?.performRecalculation();\r\n });\r\n });\r\n }\r\n}\r\n","\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Customer\r\n \r\n \r\n Tail Number\r\n \r\n \r\n Template\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Tail Number\r\n \r\n \r\n {{ aircraft.tailNumber }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Customer\r\n \r\n \r\n {{ customer.company }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n ITP Template\r\n \r\n \r\n {{ pricingTemplate.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 No Tail Price Found!\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n Pricing Template:\r\n
\r\n
\r\n {{\r\n priceLookupInfo?.template\r\n ? priceLookupInfo.template\r\n : \"N/A\"\r\n }}\r\n
\r\n
\r\n
\r\n
Company:
\r\n
\r\n {{\r\n priceLookupInfo?.company\r\n ? priceLookupInfo.company\r\n : \"N/A\"\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n Make/Model:\r\n
\r\n
\r\n {{\r\n priceLookupInfo?.makeModel\r\n ? priceLookupInfo.makeModel\r\n : \"N/A\"\r\n }}\r\n
\r\n
\r\n
\r\n
Ramp Fee:
\r\n
\r\n ${{\r\n priceLookupInfo?.rampFee.price\r\n | decimalPrecision\r\n }}\r\n waived at\r\n {{\r\n priceLookupInfo.rampFee.waived\r\n | decimalPrecision\r\n }}\r\n gal.\r\n
\r\n
\r\n N/A\r\n
\r\n
\r\n
\r\n
\r\n Ramp Fee Rule:\r\n
\r\n
\r\n {{\r\n priceLookupInfo.rampFee\r\n .categorizationDescription\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n\r\n
\r\n Taxes and Fees\r\n
\r\n\r\n
\r\n Customer's All-In 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","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n// Components\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-pricing-expired-notification-group',\r\n styleUrls: ['./pricing-expired-notification-group.component.scss'],\r\n templateUrl: './pricing-expired-notification-group.component.html',\r\n})\r\nexport class PricingExpiredNotificationGroupComponent {\r\n constructor(\r\n private router: Router,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n public onConfirmClicked() {\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated']);\r\n this.dialogRef.close();\r\n }\r\n\r\n public onRemindMeLaterClick() {\r\n localStorage.setItem(\r\n 'pricingExpiredNotification',\r\n moment().add(1, 'days').format('L')\r\n );\r\n this.dialogRef.close();\r\n }\r\n\r\n public onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n\r\n public onManageClick(fbo) {\r\n this.dialogRef.close(fbo);\r\n }\r\n}\r\n","

Pricing Expired

\r\n
\r\n
\r\n Pricing for some of your FBOs has expired. Please click below to\r\n navigate to their FBO page and update the pricing.\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n Remind Me Later \r\n \r\n Dismiss \r\n
\r\n
\r\n","import { Component, Inject, Input } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { Router } from '@angular/router';\r\n// Components\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-pricing-expired-notification',\r\n styleUrls: ['./pricing-expired-notification.component.scss'],\r\n templateUrl: './pricing-expired-notification.component.html',\r\n})\r\nexport class PricingExpiredNotificationComponent {\r\n @Input() hideRemindMeButton = false;\r\n\r\n constructor(\r\n private router: Router,\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n if (data.hideRemindMeButton) {\r\n this.hideRemindMeButton = data.hideRemindMeButton;\r\n }\r\n }\r\n\r\n public onConfirmClicked() {\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated']);\r\n this.dialogRef.close();\r\n }\r\n\r\n public onRemindMeLaterClick() {\r\n localStorage.setItem(\r\n 'pricingExpiredNotification',\r\n moment().add(1, 'days').format('L')\r\n );\r\n this.dialogRef.close();\r\n }\r\n\r\n public onCancelClick() {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n

Pricing Expired

\r\n
\r\n
\r\n Your fuel pricing has expired. Please update your cost/retail values.\r\n
\r\n
\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, Input } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface ProceedConfirmationData {\r\n description: string;\r\n tableItemsList: string[];\r\n buttonText: string;\r\n title: string;\r\n additionalInfo: string;\r\n listItemsList: string[];\r\n}\r\n\r\n@Component({\r\n selector: 'app-proceed-confirmation',\r\n styleUrls: ['./proceed-confirmation.component.scss'],\r\n templateUrl: './proceed-confirmation.component.html',\r\n})\r\nexport class ProceedConfirmationComponent {\r\n @Input() buttonText = 'Confirm';\r\n @Input() title = 'Distribute?';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ProceedConfirmationData\r\n ) {\r\n if (data.buttonText) {\r\n this.buttonText = data.buttonText;\r\n }\r\n\r\n if (data.title) {\r\n this.title = data.title;\r\n }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

{{ title }}

\r\n
\r\n \r\n {{ data.description }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ cell }}\r\n
\r\n
\r\n
    \r\n
  • \r\n
    \r\n
  • \r\n
\r\n
\r\n
\r\n \r\n {{ data.additionalInfo }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, HostListener, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { NgxUiLoaderService } from 'ngx-ui-loader';\r\n\r\n@Component({\r\n selector: 'app-request-demo-modal',\r\n styleUrls: ['./request-demo-modal.component.scss'],\r\n templateUrl: './request-demo-modal.component.html',\r\n})\r\nexport class RequestDemoModalComponent {\r\n public zohoLoader = 'Zoho loader';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n private ngxLoader: NgxUiLoaderService,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {\r\n this.ngxLoader.startLoader(this.zohoLoader);\r\n }\r\n\r\n @HostListener('window:message', ['$event'])\r\n messageUpdated(event: MessageEvent) {\r\n if (event.isTrusted && event.returnValue) {\r\n this.data.succeed = true;\r\n this.dialogRef.close(this.data);\r\n }\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n public zohoLoaded() {\r\n this.ngxLoader.stopLoader(this.zohoLoader);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\n@Component({\r\n selector: 'app-request-demo-success',\r\n styleUrls: ['./request-demo-success.component.scss'],\r\n templateUrl: './request-demo-success.component.html',\r\n})\r\nexport class RequestDemoSuccessComponent {\r\n public zohoLoader = 'Zoho loader';\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: any\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","
\r\n \r\n
Thank you! Your data has been submitted.
\r\n \r\n Close\r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\n\r\nexport interface SaveConfirmationData {\r\n description: string;\r\n customTitle: string;\r\n customText: string;\r\n save: string;\r\n discard: string;\r\n cancel: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-save-confirmation',\r\n styleUrls: ['./save-confirmation.component.scss'],\r\n templateUrl: './save-confirmation.component.html',\r\n})\r\nexport class SaveConfirmationComponent {\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: SaveConfirmationData\r\n ) {}\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Save Changes?

\r\n

{{ data.customTitle }}

\r\n
\r\n
\r\n You are about to close this {{ data.description }}. Are you sure?\r\n
\r\n
\r\n {{ data.customText }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ data.save }}\r\n \r\n \r\n {{ data.discard }}\r\n \r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n selector: 'app-statistics-orders-by-location',\r\n styleUrls: ['./statistics-orders-by-location.component.scss'],\r\n templateUrl: './statistics-orders-by-location.component.html',\r\n})\r\nexport class StatisticsOrdersByLocationComponent implements OnInit {\r\n @Input() options: any = {\r\n useCard: true,\r\n };\r\n @Input() startDate: any;\r\n @Input() endDate: any;\r\n\r\n // Public Members\r\n public totalOrders: number;\r\n public icao: string;\r\n public dayDifference: number = 30;\r\n public monthDifference: number = 1;\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.dayDifference = Math.abs(moment(this.endDate).diff(this.startDate, 'days'));\r\n this.monthDifference = Math.abs(moment(this.endDate).diff(this.startDate, 'months'));\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.fuelreqsService\r\n .getOrdersByLocation({\r\n endDateTime: this.endDate,\r\n fboId: this.sharedService.currentUser.fboId,\r\n icao: '',\r\n startDateTime: this.startDate,\r\n })\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrders = 0;\r\n if (data) {\r\n if (data.totalOrders) {\r\n this.totalOrders = data.totalOrders;\r\n }\r\n if (data.icao) {\r\n this.icao = data.icao;\r\n }\r\n }\r\n },\r\n (error: any) => {}\r\n );\r\n }\r\n}\r\n","\r\n
FuelerLinx Fuel Orders @ {{ icao }}
\r\n
{{ totalOrders }}
\r\n (Last {{ dayDifference }} days) All FBOs & All Fuel Sources\r\n 60\">(Last {{ monthDifference }} months) All FBOs & All Fuel Sources\r\n local_gas_station\r\n
\r\n\r\n
Aircraft: {{ totalOrders }}
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { CustomeraircraftsService } from '../../../services/customeraircrafts.service';\r\n\r\n@Component({\r\n selector: 'app-statistics-total-aircraft',\r\n styleUrls: ['./statistics-total-aircraft.component.scss'],\r\n templateUrl: './statistics-total-aircraft.component.html',\r\n})\r\n\r\n// statistics-total-aircraft component\r\nexport class StatisticsTotalAircraftComponent implements OnInit {\r\n @Input() options: any = {\r\n useCard: true,\r\n };\r\n @Input() startDate: any;\r\n @Input() endDate: any;\r\n\r\n // Public Members\r\n public totalAircraft: number;\r\n\r\n constructor(\r\n private customeraircraftService: CustomeraircraftsService,\r\n private sharedService: SharedService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.customeraircraftService\r\n .getCustomerAircraftsCountByGroupId(\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalAircraft = data;\r\n },\r\n () => {}\r\n );\r\n }\r\n}\r\n","\r\n
Active Aircraft
\r\n
{{ totalAircraft }}
\r\n Source: FuelerLinx & Your Network\r\n airplanemode_active\r\n\r\n\r\n
Aircraft: {{ totalAircraft }}
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\n\r\n@Component({\r\n selector: 'app-statistics-total-customers',\r\n styleUrls: ['./statistics-total-customers.component.scss'],\r\n templateUrl: './statistics-total-customers.component.html',\r\n})\r\n// statisticsTotalCustomers component\r\nexport class StatisticsTotalCustomersComponent implements OnInit {\r\n @Input() options: any = {\r\n useCard: true,\r\n };\r\n @Input() startDate: any;\r\n @Input() endDate: any;\r\n\r\n // Public Members\r\n public totalCustomers: number;\r\n\r\n constructor(\r\n private customerinfobygroupService: CustomerinfobygroupService,\r\n private sharedService: SharedService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.customerinfobygroupService\r\n .getCustomerCountByGroupAndFBO(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalCustomers = data;\r\n },\r\n () => {}\r\n );\r\n }\r\n}\r\n","\r\n
Active Flight Departments
\r\n
{{ totalCustomers }}
\r\n Source: FuelerLinx & Your Network\r\n person\r\n\r\n\r\n
Flight Depts.: {{ totalCustomers }}
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n// Components\r\nimport * as moment from 'moment';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n// Services\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n\r\n@Component({\r\n selector: 'app-statistics-total-orders',\r\n styleUrls: ['./statistics-total-orders.component.scss'],\r\n templateUrl: './statistics-total-orders.component.html',\r\n})\r\n// statistics-total-orders component\r\nexport class StatisticsTotalOrdersComponent implements OnInit {\r\n @Input() options: any = {\r\n useCard: true,\r\n };\r\n @Input() startDate: any;\r\n @Input() endDate: any;\r\n\r\n // Public Members\r\n public totalOrders: number;\r\n public startDateString: string;\r\n public dayDifference: number = 30;\r\n public monthDifference: number = 1;\r\n\r\n constructor(\r\n private fuelreqsService: FuelreqsService,\r\n private sharedService: SharedService\r\n ) {\r\n if (!this.options) {\r\n this.options = {};\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.dayDifference = Math.abs(moment(this.endDate).diff(this.startDate, 'days'));\r\n this.monthDifference = Math.abs(moment(this.endDate).diff(this.startDate, 'months'));\r\n this.refreshData();\r\n }\r\n\r\n public refreshData() {\r\n this.startDateString = moment(this.startDate).format('L');\r\n this.fuelreqsService\r\n .getForFboCount(\r\n this.sharedService.currentUser.fboId,\r\n this.startDate\r\n )\r\n .subscribe(\r\n (data: any) => {\r\n this.totalOrders = data;\r\n },\r\n () => {}\r\n );\r\n }\r\n}\r\n","\r\n
Your Direct FBOLinx Orders
\r\n
{{ totalOrders }}
\r\n (Last {{ dayDifference }} days) Not Including Contract Fuel\r\n 60\">(Last {{ monthDifference }} months) Not Including Contract Fuel\r\n shopping_basket\r\n
\r\n\r\n
Orders: {{ totalOrders }}
\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger,\r\n} from '@angular/animations';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport * as moment from 'moment';\r\nimport { EnumOptions } from \"../../../models/enum-options\";\r\nimport { StringFilterConditions } from \"../../../enums/string-filter-conditions\";\r\n\r\nenum tableFilterColumnFormat {\r\n Text = 0,\r\n Number = 1,\r\n Date = 2,Time = 3,\r\n DateTime = 4,\r\n Currency = 5,\r\n Weight = 6,\r\n TimeStandard = 7,\r\n YesNo = 8,\r\n EmptyNotEmpty = 9,\r\n Multiselect = 10,\r\n ManyToManyMultiselect = 11\r\n}\r\n@Component({\r\n animations: [\r\n trigger('openClose', [\r\n // ...\r\n state(\r\n 'open',\r\n style({\r\n height: '*',\r\n opacity: 1,\r\n })\r\n ),\r\n state(\r\n 'closed',\r\n style({\r\n height: '0',\r\n opacity: 0,\r\n })\r\n ),\r\n transition('open => closed', [animate('.3s')]),\r\n transition('closed => open', [animate('0.3s')]),\r\n ]),\r\n ],\r\n selector: 'app-table-column-filter',\r\n styleUrls: ['table-column-filter.component.scss'],\r\n templateUrl: 'table-column-filter.component.html',\r\n})\r\nexport class TableColumnFilterComponent implements OnInit {\r\n @Input() columnId: string;\r\n @Input() column: any;\r\n @Input() columnFormat: tableFilterColumnFormat = tableFilterColumnFormat.Text;\r\n @Input() propertyName: string;\r\n @Input() matDataSource: any = null;\r\n @Input() matSort: MatSort;\r\n @Input() tableFilter: any;\r\n @Input() allowEditHeading = false;\r\n @Input() options: any[] = [];\r\n @Input() optionLabel: string;\r\n @Input() optionValue: string;\r\n @Input() showButton: boolean = false;\r\n @Output() columnChanged: EventEmitter = new EventEmitter();\r\n @Output() filterApplied: EventEmitter = new EventEmitter();\r\n @Output() filteredDataSource: EventEmitter = new EventEmitter();\r\n\r\n public filter: any = {\r\n dateFilter: {\r\n endDate: null,\r\n startDate: null,\r\n },\r\n isFiltered: false,\r\n numberRangeFilter: {\r\n end: null,\r\n start: null,\r\n },\r\n optionsFilter: [],\r\n stringFilter: '',\r\n filterStringCondition: StringFilterConditions.Contains\r\n };\r\n public isHeadingOpen = false;\r\n public isFilterOpen = false;\r\n public stringFilterConditionOptions: Array = EnumOptions.stringFilterConditionOptions;\r\n\r\n private page;\r\n private existingFilterPassed = false;\r\n\r\n constructor() {}\r\n\r\n ngOnInit(): void {\r\n\r\n if (!this.column) {\r\n this.column = {\r\n propertyName: this.propertyName,\r\n };\r\n }\r\n if (!this.column.propertyName) {\r\n if (!this.propertyName) {\r\n throw new Error(\r\n 'A propertyName must be provided for the column value in the data collection.'\r\n );\r\n } else {\r\n this.column.propertyName = this.propertyName;\r\n }\r\n }\r\n if (!this.column.columnFormat) {\r\n this.column.columnFormat = this.columnFormat;\r\n }\r\n\r\n if (!this.matDataSource.filterCollection) {\r\n this.matDataSource.filterCollection = [];\r\n }\r\n if (this.matDataSource.filterCollection.indexOf(this.filter) === -1) {\r\n this.matDataSource.filterCollection.push(this.filter);\r\n }\r\n\r\n this.setupFilterPredicate();\r\n\r\n if (this.matDataSource.data.length > 0 && this.matDataSource.data[0].hasOwnProperty('fuelerLinxId'))\r\n this.page = \"customer-manager-filters\";\r\n\r\n var existingFilters = localStorage.getItem(this.page);\r\n if (existingFilters != null) {\r\n var filters = JSON.parse(existingFilters);\r\n filters.forEach((filter) => {\r\n if (filter.propertyName == this.column.propertyName) {\r\n this.existingFilterPassed = true;\r\n this.applyFilter(filter.filter, null);\r\n }\r\n });\r\n }\r\n }\r\n\r\n public orderData(id: string, start?: 'asc' | 'desc'): void {\r\n const matSort = this.matDataSource.sort;\r\n const disableClear = false;\r\n\r\n matSort.sort({ disableClear, id: null, start });\r\n matSort.sort({ disableClear, id, start });\r\n\r\n this.matDataSource.sort = this.matSort;\r\n this.filteredDataSource.emit(this.matDataSource);\r\n }\r\n\r\n public editHeadingFinished(column: any): void {\r\n column.isEditingHeader = false;\r\n this.columnChanged.emit(column);\r\n }\r\n\r\n public applyFilter(filterValue: any, menuTrigger: any) {\r\n this.filter.isFiltered = filterValue != null;\r\n\r\n this.column.filter = filterValue;\r\n\r\n if (this.matDataSource.filter && this.matDataSource.filter !== '') {\r\n this.tableFilter = JSON.parse(this.matDataSource.filter);\r\n } else {\r\n this.tableFilter = [];\r\n }\r\n\r\n const existingFilter = this.tableFilter.filter(\r\n (column) => column.propertyName === this.column.propertyName\r\n );\r\n\r\n var existingFilterIndex = -1;\r\n\r\n if (existingFilter.length === 0) {\r\n this.tableFilter.push(this.column);\r\n existingFilter.push(this.column);\r\n } else {\r\n existingFilterIndex = this.tableFilter.findIndex(column => {\r\n return column.propertyName === existingFilter[0].propertyName\r\n });\r\n\r\n existingFilter[0].filter = this.column.filter;\r\n }\r\n\r\n if (!filterValue || filterValue === '') {\r\n this.tableFilter.splice(existingFilterIndex, 1);\r\n }\r\n\r\n this.matDataSource.filter = JSON.stringify(this.tableFilter);\r\n this.filterApplied.emit(this.column);\r\n if (menuTrigger) {\r\n menuTrigger.closeMenu();\r\n }\r\n\r\n if ((!this.existingFilterPassed && filterValue != null) || filterValue == null) {\r\n localStorage.setItem(\r\n this.page,\r\n this.matDataSource.filter\r\n );\r\n this.existingFilterPassed = false;\r\n }\r\n\r\n this.filteredDataSource.emit(this.matDataSource);\r\n }\r\n\r\n public clearFilter(): void {\r\n this.filter.dateFilter = {\r\n endDate: null,\r\n startDate: null,\r\n };\r\n this.filter.stringFilter = '';\r\n this.filter.numberRangeFilter = {\r\n end: null,\r\n start: null,\r\n };\r\n this.filter.optionsFilter = [];\r\n\r\n this.applyFilter(null, null);\r\n }\r\n\r\n // PRIVATE METHODS\r\n private setupFilterPredicate() {\r\n this.matDataSource.filterPredicate = (data: any, filters: string) => {\r\n const parsedFilters: any[] = JSON.parse(filters);\r\n\r\n if (parsedFilters === null || parsedFilters.length === 0) {\r\n return true;\r\n }\r\n\r\n const filterCallback = (element, index, array): boolean => {\r\n if (element.isGlobal) {\r\n if (!element.columns) {\r\n if (!data) {\r\n return true;\r\n } else {\r\n if (data.hasOwnProperty('fuelVendors')) {\r\n let tempDataString = JSON.stringify(data)\r\n let tempData = JSON.parse(tempDataString);\r\n delete tempData.fuelVendors;\r\n\r\n return (Object.values(tempData).toString().toLowerCase().indexOf(element.filterValue) > -1);\r\n }\r\n else\r\n return (Object.values(data).toString().toLowerCase().indexOf(element.filterValue) > -1);\r\n //const serializedData =\r\n // JSON.stringify(data).toLowerCase();\r\n //return (\r\n // serializedData.indexOf(element.filterValue) > -1\r\n //);\r\n }\r\n }\r\n for (const column of element.columns) {\r\n if (!column.isVisible) {\r\n continue;\r\n }\r\n const propertyValue: any = data[column.propertyName];\r\n if (!propertyValue) {\r\n continue;\r\n }\r\n if (\r\n typeof propertyValue === 'number' ||\r\n typeof propertyValue === 'string'\r\n ) {\r\n if (element.filter.filterStringCondition == StringFilterConditions.Contains) {\r\n if (\r\n propertyValue\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(element.filterValue) >\r\n -1\r\n ) {\r\n return true;\r\n }\r\n } else if (element.filter.filterStringCondition == StringFilterConditions.DoesNotContain) {\r\n if (\r\n propertyValue\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(element.filterValue) === -1\r\n ) {\r\n return true;\r\n }\r\n }\r\n\r\n } else if (propertyValue.amount) {\r\n if (\r\n propertyValue.amount\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(element.filterValue) > -1\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n } else {\r\n if (!element.filter) {\r\n return true;\r\n }\r\n\r\n let columnValue = data[element.propertyName];\r\n\r\n if ([9].indexOf(element.columnFormat) > -1) {\r\n return (\r\n (element.filter.stringFilter === 'true' &&\r\n !columnValue) ||\r\n (element.filter.stringFilter === 'false' &&\r\n !!columnValue)\r\n );\r\n }\r\n\r\n if ([10].indexOf(element.columnFormat) > -1) {\r\n return (\r\n !element.filter.optionsFilter.length ||\r\n (element.filter.optionsFilter.includes(columnValue) && element.filter.filterStringCondition == StringFilterConditions.Contains) ||\r\n (!element.filter.optionsFilter.includes(columnValue) && element.filter.filterStringCondition == StringFilterConditions.DoesNotContain)\r\n );\r\n }\r\n\r\n if ([11].indexOf(element.columnFormat) > -1) {\r\n return (\r\n !element.filter.optionsFilter.length\r\n ||\r\n element.filter.optionsFilter.some((v) =>\r\n columnValue.find((c) => ((c.value === v || c.name === v) && element.filter.filterStringCondition == StringFilterConditions.Contains)))\r\n ||\r\n (element.filter.filterStringCondition == StringFilterConditions.DoesNotContain && element.filter.optionsFilter.every((v) =>\r\n !(columnValue.find((c) => ((c.value === v || c.name === v))))))\r\n\r\n );\r\n }\r\n\r\n\r\n if (columnValue === null || columnValue === '') {\r\n return false;\r\n }\r\n\r\n if (element.columnFormat === 6) {\r\n columnValue = columnValue.amount;\r\n }\r\n columnValue = columnValue.toString();\r\n\r\n if ([2, 3, 4].indexOf(element.columnFormat) > -1) {\r\n return (\r\n (!element.filter.dateFilter.startDate ||\r\n element.filter.dateFilter.startDate === '' ||\r\n moment(columnValue).isAfter(\r\n element.filter.dateFilter.startDate\r\n )) &&\r\n (!element.filter.dateFilter.endDate ||\r\n element.filter.dateFilter.endDate === '' ||\r\n moment(columnValue).isBefore(\r\n element.filter.dateFilter.endDate\r\n ))\r\n );\r\n }\r\n if ([1, 5, 6].indexOf(element.columnFormat) > -1) {\r\n return (\r\n (!element.filter.numberRangeFilter.start ||\r\n element.filter.numberRangeFilter.start <=\r\n parseFloat(columnValue)) &&\r\n (!element.filter.numberRangeFilter.end ||\r\n element.filter.numberRangeFilter.end >=\r\n parseFloat(columnValue))\r\n );\r\n }\r\n if (element.filter.filterStringCondition == StringFilterConditions.Contains) {\r\n return (\r\n columnValue\r\n .toLowerCase()\r\n .indexOf(element.filter.stringFilter\r\n .toLowerCase()) >\r\n -1\r\n );\r\n } else if (element.filter.filterStringCondition == StringFilterConditions.DoesNotContain) {\r\n return (\r\n columnValue\r\n .toLowerCase()\r\n .indexOf(element.filter.stringFilter\r\n .toLowerCase()) ===\r\n -1\r\n );\r\n }\r\n return true;\r\n }\r\n };\r\n\r\n const trueFilters = parsedFilters.filter(filterCallback);\r\n\r\n return trueFilters.length === parsedFilters.length;\r\n };\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n filter_list \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n filter_list \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Heading\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n arrow_upward\r\n Sort Ascending\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n arrow_downward\r\n Sort Descending\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n filter_list\r\n Filter\r\n \r\n
\r\n
\r\n -1\"\r\n class=\"col-12\"\r\n >\r\n
\r\n \r\n
\r\n \r\n From\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n To\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n -1\"\r\n class=\"col-12\"\r\n >\r\n
\r\n \r\n {{ column.heading }} Filter\r\n \r\n \r\n {{ condition.text }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ column.heading }} Filter\r\n \r\n \r\n
\r\n
\r\n -1\"\r\n class=\"col-12\"\r\n >\r\n
\r\n \r\n {{ column.heading }} Filter\r\n \r\n --Select One--\r\n Yes\r\n No\r\n \r\n \r\n
\r\n \r\n -1\"\r\n class=\"col-12\"\r\n >\r\n
\r\n \r\n {{ column.heading }} Filter\r\n \r\n --Select One--\r\n Is Empty\r\n Is Not Empty\r\n \r\n \r\n
\r\n \r\n -1\"\r\n class=\"col-12\"\r\n >\r\n
\r\n
\r\n \r\n Range From\r\n \r\n \r\n
\r\n
\r\n \r\n Range To\r\n \r\n \r\n
\r\n
\r\n \r\n -1\"\r\n class=\"col-12\"\r\n >\r\n
\r\n \r\n {{ column.heading }} Filter\r\n \r\n \r\n {{ condition.text }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Clear\r\n \r\n
\r\n
\r\n \r\n Filter\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport * as moment from 'moment';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-table-global-search',\r\n styleUrls: ['table-global-search.component.scss'],\r\n templateUrl: 'table-global-search.component.html',\r\n})\r\nexport class TableGlobalSearchComponent implements OnInit {\r\n @Input() placeholder: string;\r\n @Input() matDataSource: any = null;\r\n @Input() SubmatDataSource: any = null\r\n @Input() showClearButton: boolean = true;\r\n @Input() hideSearchInput: boolean = false;\r\n @Output() filterApplied: EventEmitter = new EventEmitter();\r\n @Output() filteredDataSource: EventEmitter = new EventEmitter();\r\n @Output() clearFilters: EventEmitter = new EventEmitter();\r\n\r\n public globalFilter: any = { filterValue: '', isGlobal: true };\r\n public userTypedFilter: string = '';\r\n\r\n private page: string = \"\";\r\n private idParam: string = \"\";\r\n\r\n public hasContent = false;\r\n\r\n private routeParamSubscription: Subscription;\r\n\r\n constructor(\r\n private route: ActivatedRoute,\r\n ) { }\r\n ngOnInit(): void {\r\n //if (!this.column) {\r\n // this.column = {\r\n // propertyName: this.propertyName,\r\n // };\r\n //}\r\n //if (!this.column.propertyName) {\r\n // if (!this.propertyName) {\r\n // throw new Error(\r\n // 'A propertyName must be provided for the column value in the data collection.'\r\n // );\r\n // } else {\r\n // this.column.propertyName = this.propertyName;\r\n // }\r\n //}\r\n //if (!this.column.columnFormat) {\r\n // this.column.columnFormat = this.columnFormat;\r\n //}\r\n\r\n //if (!this.matDataSource.filterCollection) {\r\n // this.matDataSource.filterCollection = [];\r\n //}\r\n //if (this.matDataSource.filterCollection.indexOf(this.filter) === -1) {\r\n // this.matDataSource.filterCollection.push(this.filter);\r\n //}\r\n\r\n if (!this.matDataSource)\r\n return;\r\n\r\n this.setupFilterPredicate();\r\n if (!this.matDataSource.filterCollection) {\r\n this.matDataSource.filterCollection = [];\r\n }\r\n let hasGlobal = false;\r\n\r\n if (this.matDataSource.data.length > 0 && this.matDataSource.data[0].hasOwnProperty('fuelerLinxId'))\r\n this.page = \"customer-manager-filters\";\r\n else\r\n this.page = \"fuel-orders-filters\";\r\n\r\n this.routeParamSubscription = this.route.queryParamMap.subscribe((params) => {\r\n this.idParam = params.get('id');\r\n });\r\n\r\n if (this.page == \"fuel-orders-filters\" && this.idParam != null)\r\n this.matDataSource.filter = \"[{ \\\"filterValue\\\":\\\"\" + this.idParam + \"\\\", \\\"isGlobal\\\": true }]\";\r\n else\r\n this.matDataSource.filter = localStorage.getItem(this.page);\r\n\r\n if (this.matDataSource.filter != null) {\r\n for (const filter of JSON.parse(this.matDataSource.filter)) {\r\n if (filter.isGlobal) {\r\n hasGlobal = true;\r\n this.globalFilter = filter;\r\n this.userTypedFilter = filter.filterValue;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (!hasGlobal) {\r\n this.matDataSource.filterCollection.push(this.globalFilter);\r\n }\r\n\r\n this.applyFilter(this.userTypedFilter);\r\n }\r\n ngOnDestroy(): void {\r\n this.routeParamSubscription?.unsubscribe();\r\n\r\n }\r\n public applyFilter(filterValue: any) {\r\n if (!this.matDataSource) {\r\n this.filterApplied.emit(filterValue);\r\n return;\r\n }\r\n\r\n let existingFilters: any[];\r\n if (!this.matDataSource.filter) {\r\n existingFilters = [];\r\n } else {\r\n existingFilters = JSON.parse(this.matDataSource.filter);\r\n\r\n }\r\n\r\n let hasGlobal = false;\r\n\r\n for (const filter of existingFilters) {\r\n\r\n if (filter.isGlobal) {\r\n hasGlobal = true;\r\n this.globalFilter = filter;\r\n break;\r\n }\r\n }\r\n\r\n if (!hasGlobal) {\r\n existingFilters.push(this.globalFilter);\r\n }\r\n\r\n this.globalFilter.filterValue = filterValue.toLowerCase();\r\n\r\n if (\r\n !this.globalFilter.filterValue ||\r\n this.globalFilter.filterValue === ''\r\n ) {\r\n existingFilters.splice(\r\n existingFilters.indexOf(this.globalFilter),\r\n 1\r\n );\r\n }\r\n\r\n this.matDataSource.filter = JSON.stringify(existingFilters);\r\n\r\n localStorage.setItem(\r\n this.page,\r\n this.matDataSource.filter\r\n );\r\n\r\n this.filterApplied.emit(filterValue);\r\n\r\n this.filteredDataSource.emit(this.matDataSource);\r\n }\r\n\r\n public clearAllFilters() {\r\n this.clearFilters.emit();\r\n\r\n this.globalFilter.filterValue = '';\r\n this.userTypedFilter = '';\r\n this.matDataSource.filter = '';\r\n if (!this.matDataSource.filterCollection) {\r\n this.matDataSource.filterCollection = [];\r\n }\r\n\r\n for (const filter of this.matDataSource.filterCollection) {\r\n if (filter.isGlobal) {\r\n continue;\r\n }\r\n\r\n filter.dateFilter = {\r\n endDate: null,\r\n startDate: null,\r\n };\r\n filter.stringFilter = '';\r\n filter.numberRangeFilter = {\r\n end: null,\r\n start: null,\r\n };\r\n filter.isFiltered = false;\r\n }\r\n\r\n if (this.page != \"\") {\r\n localStorage.removeItem(this.page);\r\n }\r\n this.filteredDataSource.emit(this.matDataSource);\r\n }\r\n\r\n // PRIVATE METHODS\r\n private setupFilterPredicate() {\r\n this.matDataSource.filterPredicate = (data: any, filters: string) => {\r\n const parsedFilters: any[] = JSON.parse(filters);\r\n\r\n if (parsedFilters === null || parsedFilters.length === 0) {\r\n return true;\r\n }\r\n\r\n const filterCallback = (element, index, array): boolean => {\r\n if (element.isGlobal) {\r\n if (!element.columns) {\r\n if (!data) {\r\n return true;\r\n } else {\r\n if (data.hasOwnProperty('fboName')) {\r\n let tempDataString = JSON.stringify(data)\r\n let tempData = JSON.parse(tempDataString);\r\n delete tempData.icao;\r\n delete tempData.timeStandard;\r\n delete tempData.fbo;\r\n delete tempData.fuelOn;\r\n delete tempData.source;\r\n delete tempData.fboName;\r\n\r\n return (Object.values(tempData).toString().toLowerCase().indexOf(element.filterValue) > -1);\r\n }\r\n else if (data.hasOwnProperty('fuelVendors')) {\r\n let tempDataString = JSON.stringify(data)\r\n let tempData = JSON.parse(tempDataString);\r\n delete tempData.fuelVendors;\r\n\r\n return (Object.values(tempData).toString().toLowerCase().indexOf(element.filterValue) > -1);\r\n }\r\n else\r\n return (Object.values(data).toString().toLowerCase().indexOf(element.filterValue) > -1);\r\n\r\n //const serializedData =\r\n // JSON.stringify(data).toLowerCase();\r\n //return (\r\n // serializedData.trim().indexOf(element.filterValue.trim()) > -1\r\n //);\r\n\r\n //Object.keys(data).some((k) => {\r\n // return data[k] == null ? false : data[k].toString().indexOf(element.filterValue) > -1;\r\n //});\r\n\r\n //return false;\r\n //for (let key in data) {\r\n // if (data[key] != null) {\r\n // var value = data[key].toString();\r\n // if (value.indexOf(element.filterValue) > -1) {\r\n // return true;\r\n // }\r\n // else return false;\r\n // }\r\n //}\r\n\r\n //return false;\r\n\r\n //return (\r\n // (Object.values(data).indexOf(element.filterValue) > -1));\r\n //return (\r\n //Object.values(data).includes(element.filterValue));\r\n }\r\n }\r\n for (const column of element.columns) {\r\n if (!column.isVisible) {\r\n continue;\r\n }\r\n const propertyValue: any = data[column.propertyName];\r\n if (!propertyValue) {\r\n continue;\r\n }\r\n if (\r\n typeof propertyValue === 'number' ||\r\n typeof propertyValue === 'string'\r\n ) {\r\n if (\r\n propertyValue\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(element.filterValue) > -1\r\n ) {\r\n return true;\r\n }\r\n } else if (propertyValue.amount) {\r\n if (\r\n propertyValue.amount\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(element.filterValue) > -1\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n } else {\r\n if (!element.filter) {\r\n return true;\r\n }\r\n\r\n let columnValue = data[element.propertyName];\r\n\r\n if (columnValue === null || columnValue === '') {\r\n return false;\r\n }\r\n\r\n if (element.columnFormat === 6) {\r\n columnValue = columnValue.amount;\r\n }\r\n columnValue = columnValue.toString();\r\n\r\n if ([2, 3, 4].indexOf(element.columnFormat) > -1) {\r\n return (\r\n (!element.filter.dateFilter.startDate ||\r\n element.filter.dateFilter.startDate === '' ||\r\n moment(columnValue).isAfter(\r\n element.filter.dateFilter.startDate\r\n )) &&\r\n (!element.filter.dateFilter.endDate ||\r\n element.filter.dateFilter.endDate === '' ||\r\n moment(columnValue).isBefore(\r\n element.filter.dateFilter.endDate\r\n ))\r\n );\r\n }\r\n if ([1, 5, 6].indexOf(element.columnFormat) > -1) {\r\n return (\r\n (!element.filter.numberRangeFilter.start ||\r\n element.filter.numberRangeFilter.start <=\r\n parseFloat(columnValue)) &&\r\n (!element.filter.numberRangeFilter.end ||\r\n element.filter.numberRangeFilter.end >=\r\n parseFloat(columnValue))\r\n );\r\n }\r\n return (\r\n columnValue\r\n .toLowerCase()\r\n .indexOf(\r\n element.filter.stringFilter\r\n .toString()\r\n .toLowerCase()\r\n ) > -1\r\n );\r\n }\r\n };\r\n\r\n const trueFilters = parsedFilters.filter(filterCallback);\r\n\r\n return trueFilters.length === parsedFilters.length;\r\n };\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n Clear All Filters\r\n Clear\r\n \r\n
\r\n
\r\n
\r\n","import {\r\n CdkDragDrop,\r\n moveItemInArray,\r\n transferArrayItem,\r\n} from '@angular/cdk/drag-drop';\r\nimport { Component, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { SortDirection } from '@angular/material/sort';\r\n\r\nexport type ColumnType = {\r\n id: string;\r\n name: string;\r\n sort?: SortDirection;\r\n hidden?: boolean;\r\n index?: number;\r\n};\r\n\r\n@Component({\r\n selector: 'app-table-settings',\r\n styleUrls: ['./table-settings.component.scss'],\r\n templateUrl: './table-settings.component.html',\r\n})\r\nexport class TableSettingsComponent {\r\n columns: ColumnType[] = [];\r\n isSaveButtonDisabled = false;\r\n hasSelectAllColumn = false;\r\n constructor(\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ColumnType[]\r\n ) {\r\n this.columns = [...data].filter((c) => c.id != 'selectAll')\r\n this.hasSelectAllColumn = this.columns.length == data.length ? false : true;\r\n }\r\n\r\n drop(event: CdkDragDrop) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n }\r\n\r\n onSortChange(column: ColumnType) {\r\n if (!column.sort) {\r\n column.sort = 'asc';\r\n this.columns = this.columns.map((vc) =>\r\n vc.id === column.id\r\n ? column\r\n : {\r\n hidden: vc.hidden,\r\n id: vc.id,\r\n name: vc.name,\r\n }\r\n );\r\n } else if (column.sort === 'asc') {\r\n column.sort = 'desc';\r\n } else if (column.sort === 'desc') {\r\n column.sort = 'asc';\r\n }\r\n }\r\n\r\n toggleColumnVisible(column: ColumnType) {\r\n this.columns = this.columns.map((c) =>\r\n c.id === column.id\r\n ? {\r\n ...column,\r\n hidden: !column.hidden,\r\n }\r\n : c\r\n );\r\n this.isSaveButtonDisabled = !this.hasAtLeastOneColumnVisible();\r\n }\r\n\r\n onSave() {\r\n if(this.hasSelectAllColumn){\r\n this.columns = [{\r\n id: 'selectAll',\r\n name: 'Select All',\r\n },...this.columns]\r\n }\r\n this.dialogRef.close(this.columns);\r\n }\r\n\r\n onCancel() {\r\n this.dialogRef.close();\r\n }\r\n hasAtLeastOneColumnVisible() {\r\n return this.columns.filter((c) => !c.hidden).length > 0;\r\n }\r\n}\r\n","

Table Settings

\r\n
\r\n
\r\n
Columns
\r\n\r\n \r\n
\r\n drag_indicator\r\n \r\n {{ column.name }}\r\n \r\n \r\n swap_vert\r\n arrow_upward\r\n arrow_downward\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n Save\r\n \r\n \r\n
\r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\n/***\r\n * @description: Responsible for returing the window object.\r\n * @author: Zoho SalesIQ\r\n */\r\n\r\nconst getWindow = () =>\r\n // return the global native browser window object\r\n window;\r\n\r\n@Injectable()\r\nexport class WindowRef {\r\n get nativeWindow(): any {\r\n return getWindow();\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickStopPropagation]',\r\n})\r\nexport class ClickStopPropagationDirective {\r\n constructor(el: ElementRef) {}\r\n\r\n @HostListener('click', ['$event'])\r\n public onClick(event: any) {\r\n event.stopPropagation();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'booleanToText'\r\n})\r\nexport class BooleanToTextPipe implements PipeTransform {\r\n\r\n transform(value: boolean): string {\r\n return (value)?'Yes':'No';\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'moment';\r\n\r\n@Pipe({\r\n name: 'ToReadableDateTime'\r\n})\r\nexport class ToReadableDateTimePipe implements PipeTransform {\r\n\r\n transform(dateObject: string, args?: any): string {\r\n if(dateObject == null) return \"\";\r\n return moment(dateObject).format('L');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\n\r\n@Pipe({\r\n name: 'getTime'\r\n})\r\nexport class GetTimePipe implements PipeTransform {\r\n\r\n transform(date?: any, defaultString: defaultStringsEnum = defaultStringsEnum.empty): any {\r\n if(date == null) return defaultString;\r\n\r\n let dateObject = new Date();\r\n\r\n if (typeof date === 'string' || date instanceof String) {\r\n if (date === null || date.trim() === \"\") return defaultString;\r\n dateObject = new Date(date.toString());\r\n }\r\n\r\n var hms:string[] = [\r\n dateObject.getHours().toString(),\r\n dateObject.getMinutes().toString()\r\n ];\r\n\r\n hms[0] = ('0' + hms[0]).slice(-2);\r\n hms[1] = ('0' + hms[1]).slice(-2);\r\n\r\n return hms.join(':');\r\n }\r\n}\r\n","import { CurrencyPipe } from '@angular/common';\r\nimport { Pipe, PipeTransform, inject } from '@angular/core';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n\r\n@Pipe({\r\n name: 'currencyPresicion'\r\n})\r\nexport class CurrencyPresicionPipe implements PipeTransform {\r\n\r\n private currencyPipe = inject(CurrencyPipe);\r\n\r\n transform(value: any, args?: any): any {\r\n var decimalPrecision = Number(localStorage.getItem(localStorageAccessConstant.decimalPrecision));\r\n var decimlaPrecisionStringForCurrency = decimalPrecision ? `1.${decimalPrecision}-${decimalPrecision}` : '1.4-4';\r\n\r\n return this.currencyPipe.transform(value, 'USD', 'symbol', decimlaPrecisionStringForCurrency);\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\n\r\n@Pipe({\r\n name: 'decimalPrecision'\r\n})\r\nexport class DecimalPrecisionPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): any {\r\n let numberValue = Number(value);\r\n if((numberValue == null || isNaN(numberValue))) return value;\r\n\r\n let precision = Number(localStorage.getItem(localStorageAccessConstant.decimalPrecision));\r\n if (precision) {\r\n return numberValue.toFixed(precision);\r\n }\r\n return numberValue.toFixed(4);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\n\r\n@Pipe({\r\n name: 'NullOrEmptyToDefault'\r\n})\r\nexport class NullOrEmptyToDefault implements PipeTransform {\r\n\r\n transform(value: any, defaultString: defaultStringsEnum = defaultStringsEnum.unknown): any {\r\n return (value)?value:defaultString;\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'ToPriceFormatPipe'\r\n})\r\nexport class ToPriceFormatPipe implements PipeTransform {\r\n\r\n transform(value: any): any {\r\n var price = +value;\r\n if(price == NaN) return \"N/A\";\r\n return \"$\"+price.toString();\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({ name: 'safeHtml' })\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(private sanitized: DomSanitizer) {}\r\n\r\n transform(value) {\r\n return this.sanitized.bypassSecurityTrustHtml(value);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { defaultStringsEnum } from 'src/app/enums/strings.enums';\r\n\r\n@Pipe({\r\n name: 'ToReadableTime'\r\n})\r\nexport class ToReadableTimePipe implements PipeTransform {\r\n\r\n transform(value: any, defaultString: defaultStringsEnum = defaultStringsEnum.empty): any {\r\n if(!value || value == null) return defaultString;\r\n value = value.split(/[^*\\d]+/);\r\n return value[0]+':'+value[1];\r\n }\r\n}\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nexport const customerGridSet = createAction(\r\n '[Customer] Grid Set',\r\n props<{\r\n filter: string;\r\n page: number;\r\n order: string;\r\n orderBy: string;\r\n filterType: number;\r\n }>()\r\n);\r\n\r\nexport const customerGridClear = createAction('[Customer] Grid Clear');\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nexport const groupGridSet = createAction(\r\n '[Group] Grid Set',\r\n props<{ filter: string }>()\r\n);\r\n\r\nexport const groupGridClear = createAction('[Group] Grid Clear');\r\n","import { createAction, props } from '@ngrx/store';\r\n\r\nexport const pricingTemplateGridSet = createAction(\r\n '[Pricing Template] Grid Set',\r\n props<{ filter: string; page: number; order: string; orderBy: string }>()\r\n);\r\n\r\nexport const pricingTemplateGridClear = createAction(\r\n '[Pricing Template] Grid Clear'\r\n);\r\n","import { createReducer, on } from '@ngrx/store';\r\n\r\nimport { customerGridClear, customerGridSet } from '../../actions';\r\n\r\nexport const customerFeatureKey = 'customer';\r\n\r\nexport interface CustomerGridState {\r\n filter: string;\r\n page: number;\r\n order: string;\r\n orderBy: string;\r\n filterType: number;\r\n}\r\n\r\nconst initialState: CustomerGridState = {\r\n filter: null,\r\n filterType: null,\r\n order: null,\r\n orderBy: null,\r\n page: null,\r\n};\r\n\r\nexport const customerReducer = createReducer(\r\n initialState,\r\n on(customerGridSet, (state, action) => ({\r\n ...state,\r\n filter: action.filter,\r\n filterType: action.filterType,\r\n order: action.order,\r\n orderBy: action.orderBy,\r\n page: action.page,\r\n })),\r\n on(customerGridClear, (state) => ({\r\n ...state,\r\n ...initialState,\r\n }))\r\n);\r\n","import { createReducer, on } from '@ngrx/store';\r\n\r\nimport { groupGridClear, groupGridSet } from '../../actions';\r\n\r\nexport const groupFeatureKey = 'group';\r\n\r\nexport interface GroupGridState {\r\n filter: string;\r\n}\r\n\r\nconst initialState: GroupGridState = {\r\n filter: null,\r\n};\r\n\r\nexport const groupReducer = createReducer(\r\n initialState,\r\n on(groupGridSet, (state, action) => ({\r\n ...state,\r\n filter: action.filter,\r\n })),\r\n on(groupGridClear, (state) => ({\r\n ...state,\r\n ...initialState,\r\n }))\r\n);\r\n","import { ActionReducerMap, MetaReducer } from '@ngrx/store';\r\n\r\nimport {\r\n customerFeatureKey,\r\n CustomerGridState,\r\n customerReducer,\r\n} from './customer';\r\nimport { groupFeatureKey, GroupGridState, groupReducer } from './group';\r\nimport {\r\n pricingTemplateFeatureKey,\r\n PricingTemplateGridState,\r\n pricingTemplateReducer,\r\n} from './pricing-template';\r\n\r\nexport interface State {\r\n [pricingTemplateFeatureKey]: PricingTemplateGridState;\r\n [customerFeatureKey]: CustomerGridState;\r\n [groupFeatureKey]: GroupGridState;\r\n}\r\n\r\nexport const reducers: ActionReducerMap = {\r\n [customerFeatureKey]: customerReducer,\r\n [groupFeatureKey]: groupReducer,\r\n [pricingTemplateFeatureKey]: pricingTemplateReducer,\r\n};\r\n\r\nexport const metaReducers: MetaReducer[] = [];\r\n","import { createReducer, on } from '@ngrx/store';\r\n\r\nimport {\r\n pricingTemplateGridClear,\r\n pricingTemplateGridSet,\r\n} from '../../actions';\r\n\r\nexport const pricingTemplateFeatureKey = 'pricing-template';\r\n\r\nexport interface PricingTemplateGridState {\r\n filter: string;\r\n page: number;\r\n order: string;\r\n orderBy: string;\r\n}\r\n\r\nconst initialState: PricingTemplateGridState = {\r\n filter: null,\r\n order: null,\r\n orderBy: null,\r\n page: null,\r\n};\r\n\r\nexport const pricingTemplateReducer = createReducer(\r\n initialState,\r\n on(pricingTemplateGridSet, (state, action) => ({\r\n ...state,\r\n filter: action.filter,\r\n order: action.order,\r\n orderBy: action.orderBy,\r\n page: action.page,\r\n })),\r\n on(pricingTemplateGridClear, (state) => ({\r\n ...state,\r\n ...initialState,\r\n }))\r\n);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\n\r\nimport { State } from '../../reducers';\r\nimport { customerFeatureKey, CustomerGridState } from '../../reducers/customer';\r\n\r\nconst selectCustomerState = createFeatureSelector(\r\n customerFeatureKey\r\n);\r\n\r\nexport const getCustomerGridState = createSelector(\r\n selectCustomerState,\r\n (state: CustomerGridState) => state\r\n);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\n\r\nimport { State } from '../../reducers';\r\nimport { groupFeatureKey, GroupGridState } from '../../reducers/group';\r\n\r\nconst selectGroupState = createFeatureSelector(\r\n groupFeatureKey\r\n);\r\n\r\nexport const getGroupGridState = createSelector(\r\n selectGroupState,\r\n (state: GroupGridState) => state\r\n);\r\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\r\n\r\nimport { State } from '../../reducers';\r\nimport {\r\n pricingTemplateFeatureKey,\r\n PricingTemplateGridState,\r\n} from '../../reducers/pricing-template';\r\n\r\nconst selectPricingTemplateState = createFeatureSelector<\r\n State,\r\n PricingTemplateGridState\r\n>(pricingTemplateFeatureKey);\r\n\r\nexport const getPricingTemplateState = createSelector(\r\n selectPricingTemplateState,\r\n (state: PricingTemplateGridState) => state\r\n);\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n ElementRef,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { isEqual } from 'lodash';\r\nimport * as moment from 'moment';\r\nimport { DistributeEmailsConfirmationComponent } from 'src/app/shared/components/distribute-emails-confirmation/distribute-emails-confirmation.component';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { CustomercontactsService } from '../../../services/customercontacts.service';\r\nimport { DistributionService } from '../../../services/distribution.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { PricingtemplatesService } from '../../../services/pricingtemplates.service';\r\nimport { DistributionWizardReviewComponent } from '../../../shared/components/distribution-wizard/distribution-wizard-review/distribution-wizard-review.component';\r\nimport { NotificationComponent } from '../../../shared/components/notification/notification.component';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\nimport * as SharedEvents from 'src/app/constants/sharedEvents';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n host: {\r\n '[class.addition-navbar]': 'true',\r\n '[class.open]': 'open',\r\n },\r\n selector: 'app-addition-navbar',\r\n styleUrls: ['./addition-navbar.component.scss'],\r\n templateUrl: './addition-navbar.component.html',\r\n})\r\nexport class AdditionNavbarComponent\r\n implements OnInit, AfterViewInit, OnChanges\r\n{\r\n @Input() templatelst: any[];\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n @ViewChild('marginTableContainer') table: ElementRef;\r\n @ViewChild('nodeInput') fileInput: ElementRef;\r\n @ViewChild('insideElement') insideElement;\r\n\r\n title: string;\r\n open: boolean;\r\n // Public Members\r\n displayedColumns: string[] = ['template', 'toggle'];\r\n resultsLength: any;\r\n marginTemplateDataSource: MatTableDataSource = null;\r\n pricingTemplatesData: any[];\r\n distributionLog: any[];\r\n timeLeft = 0;\r\n interval: any;\r\n selectAll = true;\r\n previewEmail = '';\r\n labelPosition = 'before';\r\n buttontext = 'Distribute Pricing';\r\n\r\n message: string;\r\n private pricesExpired: boolean;\r\n private retailPrice: number;\r\n private costPrice: number;\r\n changedSubscription: Subscription;\r\n changeSortSubscription: Subscription;\r\n currentMessageSubscription: Subscription;\r\n loadingPrices: boolean = false;\r\n private integrationStatus: boolean = false;\r\n\r\n constructor(\r\n private pricingTemplatesService: PricingtemplatesService,\r\n private sharedService: SharedService,\r\n private distributeConfirmationDialog: MatDialog,\r\n private templateDialog: MatDialog,\r\n private distributionService: DistributionService,\r\n private fboPricesService: FbopricesService\r\n ) {\r\n this.title = 'Distribute Prices';\r\n this.open = false;\r\n }\r\n\r\n get validTemplates() {\r\n return this.pricingTemplatesData.filter(\r\n (t) => t.customerEmails.length > 0\r\n );\r\n }\r\n\r\n ngOnInit() { this.integrationStatus = this.sharedService.currentUser.integrationStatus; }\r\n\r\n ngAfterViewInit() {\r\n this.currentMessageSubscription = this.sharedService.currentMessage.subscribe((message) => {\r\n this.message = message;\r\n });\r\n\r\n this.changedSubscription =\r\n this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === 'fbo-prices-loaded' || message === SharedEvents.fboPricesClearedEvent) {\r\n this.getPrices();\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.changedSubscription?.unsubscribe();\r\n this.changeSortSubscription?.unsubscribe();\r\n this.currentMessageSubscription?.unsubscribe();\r\n }\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (\r\n changes.templatelst &&\r\n !isEqual(\r\n changes.templatelst.currentValue,\r\n changes.templatelst.previousValue\r\n )\r\n ) {\r\n this.refresh();\r\n }\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(targetElement) {\r\n if (\r\n this.open &&\r\n targetElement.target &&\r\n (targetElement.target.innerText === 'Clear' ||\r\n (targetElement.target.nodeName !== 'svg' &&\r\n targetElement.target.offsetParent &&\r\n !(\r\n targetElement.target.className === 'ng-star-inserted' ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'addition-navbar'\r\n ) > -1 ||\r\n targetElement.target.textContent === '$Cost' ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'addition-navbar'\r\n ) > -1 ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'open-navbar'\r\n ) > -1 ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'mat-slide-toggle-thumb-container'\r\n ) > -1 ||\r\n targetElement.target.offsetParent.tagName ===\r\n 'MAT-PROGRESS-BAR' ||\r\n targetElement.target.nodeName === 'MAT-PROGRESS-BAR' ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'btn-text'\r\n ) > -1 ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'ng-star-inserted'\r\n ) > -1 ||\r\n targetElement.target.offsetParent.className.lastIndexOf(\r\n 'mat-progress-bar-element'\r\n ) > -1 ||\r\n targetElement.target.offsetParent.innerText ===\r\n 'Distribute Pricing' ||\r\n targetElement.target.offsetParent.offsetParent\r\n .className === 'addition-navbar'\r\n )))\r\n ) {\r\n if (targetElement.target.innerText !== 'Sent!') {\r\n this.open = !this.open;\r\n }\r\n }\r\n }\r\n\r\n refresh() {\r\n this.distributionService\r\n .getDistributionLogForFbo(this.sharedService.currentUser.fboId, 50)\r\n .subscribe((data: any) => {\r\n this.distributionLog = data;\r\n if (!this.distributionLog) {\r\n this.distributionLog = [];\r\n } else {\r\n this.templatelst.forEach((m) => {\r\n this.distributionLog.forEach((obj) => {\r\n if (obj.pricingTemplateId === m.oid) {\r\n if (m.text === undefined) {\r\n m.text =\r\n 'Last sent ' +\r\n moment(\r\n moment.utc(obj.dateSent).toDate()\r\n ).format('MM/DD/YYYY HH:mm');\r\n }\r\n }\r\n });\r\n });\r\n }\r\n });\r\n\r\n this.pricingTemplatesData = this.templatelst.filter(\r\n (element: any, index: number, array: any[]) =>\r\n array.indexOf(\r\n array.find(\r\n (t) =>\r\n t.oid === element.oid &&\r\n t.text === element.text &&\r\n t.name === element.name\r\n )\r\n ) === index\r\n );\r\n\r\n this.prepareDataSource();\r\n }\r\n\r\n openNavbar(event) {\r\n event.preventDefault();\r\n\r\n if (!this.open) {\r\n this.pricingTemplatesData = [];\r\n\r\n this.pricingTemplatesService\r\n .getWithEmailContentByFbo(\r\n this.sharedService.currentUser.fboId,\r\n this.sharedService.currentUser.groupId\r\n )\r\n .subscribe((data: any) => {\r\n if (data) {\r\n this.pricingTemplatesData = data\r\n .map((row) => ({\r\n ...row,\r\n toSend: row.customersAssigned > 0 && row.customerEmails.length > 0 ? true : false,\r\n sending: false\r\n }));\r\n }\r\n\r\n this.marginTemplateDataSource = new MatTableDataSource(\r\n this.pricingTemplatesData\r\n );\r\n this.resultsLength = this.pricingTemplatesData.length;\r\n this.selectAll = true;\r\n });\r\n }\r\n\r\n this.open = !this.open;\r\n }\r\n\r\n async openMarginInfo(templateId) {\r\n this.pricesExpired = null;\r\n const filteredTemplate = this.pricingTemplatesData.find(\r\n ({ oid }) => oid === templateId\r\n );\r\n\r\n await this.checkExpiredPrices(filteredTemplate.marginTypeProduct);\r\n\r\n if (this.pricesExpired == null) {\r\n const sleep = async (waitTime: number) =>\r\n new Promise(resolve =>\r\n setTimeout(resolve, waitTime));\r\n await sleep(1000);\r\n if (this.pricesExpired == null)\r\n await sleep(1000);\r\n }\r\n\r\n if (!this.pricesExpired) {\r\n this.checkCustomerContacts(filteredTemplate);\r\n }\r\n }\r\n\r\n async delay(ms: number) {\r\n await new Promise((resolve) => setTimeout(() => resolve(), ms));\r\n }\r\n\r\n changeSentOption(item) {\r\n item.toSend = !item.toSend;\r\n if (!item.toSend) {\r\n this.selectAll = false;\r\n }\r\n\r\n if (\r\n this.validTemplates.length ===\r\n this.validTemplates.filter((t) => t.toSend).length\r\n ) {\r\n this.selectAll = true;\r\n }\r\n }\r\n\r\n checkCustomerContacts(template) {\r\n if (template.customerEmails.length) {\r\n const dialogRef = this.templateDialog.open(\r\n DistributionWizardReviewComponent,\r\n {\r\n data: this.previewEmail,\r\n panelClass: 'wizard',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n if (!template.emailContent) {\r\n const dialogRef = this.templateDialog.open(\r\n NotificationComponent,\r\n {\r\n data: {\r\n text: 'Please assign an Email Template to this ITP Template before proceeding.',\r\n },\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n else {\r\n this.previewEmail = result;\r\n const request = this.GetSendDistributionRequest(template);\r\n this.distributionService\r\n .previewDistribution(request)\r\n .subscribe(() => { });\r\n }\r\n });\r\n } else {\r\n const dialogRef = this.templateDialog.open(NotificationComponent, {\r\n data: {\r\n text: 'Please add a contact with an email to a customer assigned to this template before proceeding.',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n }\r\n\r\n async confirmSendEmails() {\r\n this.loadingPrices = true;\r\n if (this.retailPrice == undefined)\r\n this.getPrices();\r\n\r\n this.pricesExpired = null;\r\n if (this.pricesExpired == null && !this.retailPrice) {\r\n const sleep = async (waitTime: number) =>\r\n new Promise(resolve =>\r\n setTimeout(resolve, waitTime));\r\n await sleep(1000);\r\n //if (this.pricesExpired == null)\r\n // await sleep(100);\r\n }\r\n this.loadingPrices = false;\r\n\r\n if (!this.retailPrice &&\r\n\r\n !this.costPrice) {\r\n const dialogRef = this.templateDialog.open(NotificationComponent, {\r\n data: {\r\n text: 'Your fuel pricing has expired. Please update your cost/retail values.',\r\n title: 'Pricing Expired',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n else {\r\n this.sendEmails();\r\n }\r\n }\r\n\r\n sendEmails() {\r\n const dialogRef = this.distributeConfirmationDialog.open(\r\n DistributeEmailsConfirmationComponent,\r\n {\r\n autoFocus: false,\r\n data: this.validTemplates.filter((t) => t.toSend),\r\n width: '700px',\r\n }\r\n );\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.sendMails();\r\n });\r\n }\r\n\r\n sendMails() {\r\n this.pricingTemplatesData.forEach((x) => {\r\n if (x.toSend && !x.sending) {\r\n x.sending = true;\r\n const request = this.GetSendDistributionRequest(x);\r\n this.distributionService\r\n .distributePricing(request)\r\n .subscribe((data: any) => {});\r\n this.interval = setInterval(() => {\r\n if (this.timeLeft <= 3) {\r\n this.timeLeft++;\r\n x.val =\r\n this.timeLeft === 3\r\n ? 100\r\n : 0 + 33.33 * this.timeLeft;\r\n if (this.timeLeft === 3) {\r\n x.sent = true;\r\n }\r\n }\r\n }, 1000);\r\n this.delay(8000).then(() => {\r\n x.sent = false;\r\n });\r\n x.lastSent =\r\n moment(new Date()).format('MM/DD/YYYY HH:mm');\r\n this.buttontext = 'Sent!';\r\n }\r\n\r\n setTimeout(() => {\r\n this.buttontext = 'Distribute Pricing';\r\n }, 5000);\r\n });\r\n }\r\n\r\n selectAllTemplates() {\r\n this.selectAll = !this.selectAll;\r\n this.pricingTemplatesData.forEach((x) => {\r\n x.toSend = this.selectAll;\r\n });\r\n }\r\n\r\n // Private Methods\r\n private GetSendDistributionRequest(template) {\r\n return {\r\n fboId: this.sharedService.currentUser.fboId,\r\n groupId: this.sharedService.currentUser.groupId,\r\n previewEmail: this.previewEmail,\r\n pricingTemplate: template,\r\n };\r\n }\r\n\r\n private async getPrices() {\r\n await this.fboPricesService\r\n .getFbopricesByFboIdCurrent(this.sharedService.currentUser.fboId).subscribe((data: any) => {\r\n this.retailPrice = data.filter(\r\n (r) => r.product === 'JetA Retail'\r\n )?.[0].price;\r\n this.costPrice = data.filter(\r\n (r) => r.product === 'JetA Cost'\r\n )?.[0].price;\r\n });\r\n }\r\n\r\n private async checkExpiredPrices(marginTypeProduct) {\r\n await this.getPrices();\r\n\r\n if (this.retailPrice)\r\n this.setNotifications(marginTypeProduct);\r\n else {\r\n const sleep = async (waitTime: number) =>\r\n new Promise(resolve =>\r\n setTimeout(resolve, waitTime));\r\n const waitToCheck = async () => {\r\n await sleep(2000);\r\n this.setNotifications(marginTypeProduct);\r\n }\r\n waitToCheck();\r\n }\r\n }\r\n\r\n private async setNotifications(marginTypeProduct) {\r\n this.pricesExpired = false;\r\n\r\n if (this.sharedService.currentUser.role != 6 && this.sharedService.currentUser.fboId > 0 && !this.retailPrice && !this.costPrice) {\r\n this.pricesExpired = true;\r\n\r\n const dialogRef = this.templateDialog.open(NotificationComponent, {\r\n data: {\r\n text: 'Your fuel pricing has expired. Please update your cost/retail values.',\r\n title: 'Pricing Expired',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n else if (marginTypeProduct == \"Cost\" && this.costPrice == 0) {\r\n this.pricesExpired = true;\r\n\r\n const dialogRef = this.templateDialog.open(NotificationComponent, {\r\n data: {\r\n text: 'You need to add a posted cost price to distribute',\r\n title: 'Cost price is expired',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n else if (marginTypeProduct == \"Retail\" && this.retailPrice == 0) {\r\n this.pricesExpired = true;\r\n\r\n const dialogRef = this.templateDialog.open(NotificationComponent, {\r\n data: {\r\n text: 'You need to add a posted retail price to distribute',\r\n title: 'Retail price is expired',\r\n },\r\n });\r\n\r\n dialogRef.afterClosed().subscribe();\r\n }\r\n }\r\n\r\n private prepareDataSource(): void {\r\n if (!this.pricingTemplatesData || !this.sort) {\r\n return;\r\n }\r\n this.changeSortSubscription = this.sort.sortChange.subscribe(() => (this.paginator.pageIndex = 0));\r\n this.marginTemplateDataSource = new MatTableDataSource(\r\n this.pricingTemplatesData\r\n );\r\n this.marginTemplateDataSource.sort = this.sort;\r\n this.marginTemplateDataSource.paginator = this.paginator;\r\n this.resultsLength = this.pricingTemplatesData.length;\r\n }\r\n\r\n isEmailDrawerEnabled() {\r\n return !this.integrationStatus && this.sharedService.currentUser.accountType == AccountType.Premium;\r\n }\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\" class=\"navbar-wrap\">\r\n
\r\n
\r\n {{ title }}\r\n
\r\n All\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ pricingTemplate.name }}\r\n
\r\n
\r\n No emails on template\r\n \r\n

Sent!

\r\n
\r\n
\r\n
\r\n \r\n Last Sent: {{ pricingTemplate.lastSent }}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n 0 &&\r\n pricingTemplate.toSend\r\n \"\r\n [disabled]=\"!pricingTemplate.customerEmails.length\"\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ buttontext }}\r\n \r\n
\r\n
\r\n \r\n\r\n","import { Component, Input, OnInit, SimpleChanges } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { PolicyAndAgreementDocuments } from 'src/app/models/PolicyAndAgreementDocuments';\r\nimport { DocumentService } from 'src/app/services/documents.service';\r\n\r\nimport { AppService } from '../../../services/app.service';\r\n\r\n@Component({\r\n host: { class: 'app-footer' },\r\n selector: 'app-footer',\r\n styleUrls: ['./footer.component.scss'],\r\n templateUrl: './footer.component.html',\r\n})\r\nexport class FooterComponent implements OnInit {\r\n @Input() isLandingPage: boolean = false;\r\n public version: string;\r\n public year: string;\r\n public termsOfService: PolicyAndAgreementDocuments;\r\n public eulaLink: string = '';\r\n\r\n constructor(private appService: AppService,private documentService: DocumentService) {\r\n this.getAppVersion();\r\n this.getEULALastVersion();\r\n }\r\n\r\n ngOnInit() {\r\n this.year = moment().format('YYYY');\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes.isLandingPage && changes.isLandingPage.currentValue) {\r\n this.updateCssVariable();\r\n }\r\n }\r\n\r\n private updateCssVariable(): void {\r\n // Update the CSS variable value\r\n const host = document.querySelector('app-footer') as HTMLElement;\r\n if (host) {\r\n host.style.setProperty('--custom-position', 'relative');\r\n }\r\n }\r\n\r\n private getAppVersion() {\r\n this.appService.getVersion().subscribe((data: any) => {\r\n this.version = data.version;\r\n });\r\n }\r\n\r\n private getEULALastVersion() {\r\n this.documentService.getLastEulaVersion().subscribe((data: any) => {\r\n this.eulaLink = data?.document;\r\n });\r\n }\r\n public hasEulaLink(): boolean {\r\n return this.eulaLink !== '';\r\n }\r\n}\r\n","
© Copyright {{ year }}. All Rights Reserved.
\r\n\r\n\r\n\r\n
Version {{ version }}
\r\n\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { Subscription, timer } from 'rxjs';\r\nimport * as _ from 'lodash';\r\nimport { environment } from 'src/environments/environment';\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport * as SharedEvents from '../../../constants/sharedEvents';\r\nimport {\r\n customerUpdatedEvent,\r\n fboChangedEvent,\r\n} from '../../../constants/sharedEvents';\r\nimport { AuthenticationService } from '../../../services/security/authentication.service';\r\nimport { CustomerinfobygroupService } from '../../../services/customerinfobygroup.service';\r\nimport { FboairportsService } from '../../../services/fboairports.service';\r\nimport { FbopricesService } from '../../../services/fboprices.service';\r\nimport { FbosService } from '../../../services/fbos.service';\r\nimport { FuelreqsService } from '../../../services/fuelreqs.service';\r\n// Services\r\nimport { UserService } from '../../../services/user.service';\r\n// Components\r\nimport { AccountProfileComponent } from '../../../shared/components/account-profile/account-profile.component';\r\nimport { WindowRef } from '../../../shared/components/zoho-chat/WindowRef';\r\n\r\nimport * as moment from 'moment';\r\nimport { AccountType, UserRole } from 'src/app/enums/user-role';\r\nimport { localStorageAccessConstant } from 'src/app/constants/LocalStorageAccessConstant';\r\nimport { ApiResponseWraper } from 'src/app/models/apiResponseWraper';\r\nimport { FlightWatchService } from 'src/app/services/flightwatch.service';\r\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport { FlightLegStatus } from 'src/app/enums/flight-watch.enum';\r\nimport { IncomingFavoriteAircraftInfoComponent } from '../incoming-favorite-aircraft-info/incoming-favorite-aircraft-info.component';\r\nimport { Local } from 'protractor/built/driverProviders';\r\n\r\n@Component({\r\n host: {\r\n '[class.app-navbar]': 'true',\r\n '[class.show-overlay]': 'showOverlay',\r\n },\r\n providers: [WindowRef],\r\n selector: 'app-horizontal-navbar',\r\n styleUrls: ['horizontal-navbar.component.scss'],\r\n templateUrl: 'horizontal-navbar.component.html',\r\n})\r\nexport class HorizontalNavbarComponent implements OnInit, OnDestroy {\r\n @Input() title: string;\r\n @Input() openedSidebar: boolean;\r\n @Input() isPublicView: boolean = false;\r\n @Output() sidebarState = new EventEmitter();\r\n\r\n @ViewChild(IncomingFavoriteAircraftInfoComponent) incomingFavoriteAircraftInfoComponent: IncomingFavoriteAircraftInfoComponent;\r\n\r\n showOverlay: boolean;\r\n isOpened: boolean;\r\n isLocationsLoading: boolean;\r\n\r\n window: any;\r\n\r\n fuelOrdersSubscription: Subscription;\r\n userFullName: string;\r\n accountProfileMenu: any = {\r\n isOpened: false,\r\n };\r\n needsAttentionMenu: any = {\r\n isOpened: false,\r\n };\r\n fuelOrderNotificationsMenu: any = {\r\n isOpened: false\r\n };\r\n favoriteAircrafts: any = {\r\n isOpened: false\r\n };\r\n currrentJetACostPricing: any;\r\n currrentJetARetailPricing: any;\r\n hasLoadedJetACost = false;\r\n hasLoadedJetARetail = false;\r\n viewAllNotifications = false;\r\n locations: any[];\r\n fboAirport: any;\r\n fbo: any;\r\n currentUser: any;\r\n needsAttentionCustomersData: any[];\r\n subscription: any;\r\n fuelOrders: any[] = [];\r\n\r\n mapLoadSubscription: Subscription;\r\n selectedICAO: string = \"\";\r\n favoriteAircraftsData : FlightWatchModelResponse[];\r\n dismissedFavoriteAircrafts : FlightWatchModelResponse[] = [];\r\n notifiedFavoriteAircraft: FlightWatchModelResponse[] = [];\r\n integrationStatus: boolean = false;\r\n\r\n\r\n routeSubscription: Subscription;\r\n\r\n get isLobbyViewPage(): boolean {\r\n return (this.router.url == '/public-layout/lobby-view') ? true : false;\r\n }\r\n get isMapVisible(): boolean {\r\n return (this.router.url == '/default-layout/flight-watch' || this.router.url == '/default-layout/dashboard-fbo-updated' || this.isLobbyViewPage) ? true : false;\r\n }\r\n get isOrderIconVisible(): boolean {\r\n const fboid = this.sharedService.currentUser.fboId;\r\n return (fboid || fboid > 0 ) ? true : false; \r\n }\r\n constructor(\r\n private authenticationService: AuthenticationService,\r\n private customerInfoByGroupService: CustomerinfobygroupService,\r\n private sharedService: SharedService,\r\n private router: Router,\r\n private accountProfileDialog: MatDialog,\r\n private userService: UserService,\r\n private fboPricesService: FbopricesService,\r\n private fboAirportsService: FboairportsService,\r\n private fbosService: FbosService,\r\n private fuelReqsService: FuelreqsService,\r\n private winRef: WindowRef,\r\n private Location: Location,\r\n private flightWatchService: FlightWatchService\r\n ) {\r\n this.openedSidebar = false;\r\n this.showOverlay = false;\r\n this.isOpened = false;\r\n this.currentUser = this.sharedService.currentUser;\r\n\r\n // getting the native window obj\r\n this.window = this.winRef.nativeWindow;\r\n\r\n if (!this.currentUser) {\r\n return;\r\n }\r\n this.userFullName =\r\n this.currentUser.firstName + ' ' + this.currentUser.lastName;\r\n if (this.userFullName.length < 2) {\r\n this.userFullName = this.currentUser.username;\r\n }\r\n }\r\n\r\n get notificationVisible() {\r\n return (\r\n this.sharedService.currentUser?.fboId > 0 &&\r\n this.sharedService.currentUser?.role !== 5 &&\r\n this.sharedService.currentUser?.accountType == AccountType.Premium &&\r\n !this.integrationStatus\r\n );\r\n }\r\n\r\n get favoriteNotificationVisible() {\r\n return (\r\n this.sharedService.currentUser?.fboId > 0 &&\r\n !this.isLobbyViewPage &&\r\n !this.integrationStatus\r\n );\r\n }\r\n\r\n get favoriteAircraftIconBadgeText(): string {\r\n return (this.favoriteAircraftsData?.length == 0)? '':this.favoriteAircraftsData?.length.toString();\r\n }\r\n\r\n ngOnInit() {\r\n if (this.canUserSeePricing()) {\r\n this.loadCurrentPrices();\r\n this.loadLocations();\r\n this.loadNeedsAttentionCustomers();\r\n }\r\n this.loadFboInfo();\r\n\r\n this.subscription = this.sharedService.changeEmitted$.subscribe(\r\n (message) => {\r\n if (!this.canUserSeePricing()) {\r\n this.fuelOrders.length = 0;\r\n }\r\n if (message === fboChangedEvent) {\r\n this.loadLocations();\r\n this.loadFboInfo();\r\n this.loadNeedsAttentionCustomers();\r\n this.loadUpcomingOrders();\r\n }\r\n if (message === customerUpdatedEvent) {\r\n this.loadNeedsAttentionCustomers();\r\n }\r\n if (message === SharedEvents.locationChangedEvent) {\r\n this.loadAirportWatchData();\r\n } else if (message == SharedEvents.icaoChangedEvent) {\r\n this.selectedICAO = this.sharedService.getCurrentUserPropertyValue(localStorageAccessConstant.icao);\r\n this.loadAirportWatchData();\r\n }\r\n if (message === SharedEvents.flightWatchDataEvent) {\r\n this.loadAirportWatchData();\r\n }\r\n }\r\n );\r\n\r\n this.fuelOrdersSubscription = timer(0, 120000).subscribe(() =>\r\n this.loadUpcomingOrders()\r\n );\r\n\r\n this.mapLoadSubscription = timer(0, environment.flightWatch.apiCallInterval).subscribe(() =>{\r\n if(this.isMapVisible) return;\r\n this.loadAirportWatchData();\r\n });\r\n this.selectedICAO = this.sharedService.getCurrentUserPropertyValue(localStorageAccessConstant.icao);\r\n\r\n this.notifiedFavoriteAircraft = JSON.parse(localStorage.getItem(localStorageAccessConstant.notifiedFavoriteAircraft)) ?? [];\r\n\r\n this.dismissedFavoriteAircrafts = JSON.parse(localStorage.getItem(localStorageAccessConstant.dismissedFavoriteAircrafts)) ?? [];\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n if (this.fuelOrdersSubscription) {\r\n this.fuelOrdersSubscription.unsubscribe();\r\n }\r\n if (this.mapLoadSubscription) this.mapLoadSubscription.unsubscribe();\r\n if(this.routeSubscription) this.routeSubscription.unsubscribe();\r\n\r\n }\r\n\r\n toggle(event) {\r\n if (this.isOpened) {\r\n this.close();\r\n } else {\r\n this.open(event);\r\n }\r\n }\r\n\r\n open(event) {\r\n const clickedComponent = event.target.closest('.nav-item');\r\n const items = clickedComponent.parentElement.children;\r\n\r\n event.preventDefault();\r\n\r\n for (const item of items) {\r\n item.classList.remove('opened');\r\n }\r\n clickedComponent.classList.add('opened');\r\n\r\n this.isOpened = true;\r\n }\r\n\r\n openUpdate() {\r\n if(this.sharedService.currentUser.role == 6) return;\r\n this.needsAttentionMenu.isOpened = !this.needsAttentionMenu.isOpened;\r\n }\r\n\r\n openfavoriteAircrafts() {\r\n this.favoriteAircrafts.isOpened = !this.favoriteAircrafts.isOpened;\r\n }\r\n\r\n openFuelOrdersUpdate() {\r\n this.fuelOrderNotificationsMenu.isOpened = !this.fuelOrderNotificationsMenu.isOpened;\r\n }\r\n\r\n close() {\r\n this.accountProfileMenu.isOpened = false;\r\n this.needsAttentionMenu.isOpened = false;\r\n this.fuelOrderNotificationsMenu.isOpened = false;\r\n this.favoriteAircrafts.isOpened = false;\r\n this.isOpened = false;\r\n }\r\n\r\n openSidebar() {\r\n this.openedSidebar = !this.openedSidebar;\r\n this.sidebarState.emit();\r\n }\r\n\r\n logout() {\r\n this.authenticationService.logout();\r\n }\r\n\r\n accountProfileClicked() {\r\n this.userService.getCurrentUser().subscribe((response: any) => {\r\n const dialogRef = this.accountProfileDialog.open(\r\n AccountProfileComponent,\r\n {\r\n data: response,\r\n height: '550px',\r\n width: '1000px',\r\n }\r\n );\r\n\r\n dialogRef.componentInstance.productChanged.subscribe(result => {\r\n this.sharedService.emitChange(SharedEvents.fboProductPreferenceChangeEvent);\r\n this.sharedService.valueChange({\r\n EnableJetA: result.enableJetA,\r\n EnableSaf: result.enableSaf,\r\n message: SharedEvents.fboProductPreferenceChangeEvent,\r\n });\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (!result) {\r\n return;\r\n }\r\n this.userService.update(result).subscribe(() => {\r\n this.userService\r\n .updatePassword({\r\n newPassword: result.newPassword,\r\n user: result,\r\n })\r\n .subscribe((newPass: any) => {\r\n result.password = newPass;\r\n });\r\n });\r\n });\r\n });\r\n this.close();\r\n }\r\n\r\n stopManagingFBOClicked() {\r\n localStorage.removeItem(localStorageAccessConstant.fboId);\r\n localStorage.removeItem(localStorageAccessConstant.managerGroupId);\r\n localStorage.removeItem(localStorageAccessConstant.impersonatedrole);\r\n this.sharedService.currentUser.fboId = 0;\r\n this.sharedService.resetCurrentUserPropertyValue(localStorageAccessConstant.icao);\r\n this.selectedICAO = null;\r\n this.sharedService.currentUser.impersonatedRole = null;\r\n if (\r\n this.sharedService.currentUser.managerGroupId &&\r\n this.sharedService.currentUser.managerGroupId > 0\r\n ) {\r\n localStorage.setItem(\r\n 'groupId',\r\n this.sharedService.currentUser.managerGroupId.toString()\r\n );\r\n this.sharedService.currentUser.groupId =\r\n this.sharedService.currentUser.managerGroupId;\r\n } else {\r\n localStorage.removeItem(localStorageAccessConstant.groupId);\r\n }\r\n this.locations = [];\r\n this.fboAirport = null;\r\n this.fbo = null;\r\n this.sharedService.emitChange(fboChangedEvent);\r\n this.close();\r\n if (this.sharedService.currentUser.conductorFbo) {\r\n localStorage.removeItem(localStorageAccessConstant.conductorFbo);\r\n this.sharedService.currentUser.conductorFbo = false;\r\n this.sharedService.emitChange(SharedEvents.accountTypeChangedEvent); \r\n this.router.navigate(['/default-layout/groups/']);\r\n } else {\r\n if (this.sharedService.currentUser.role === 3) {\r\n this.sharedService.currentUser.impersonatedRole = 2;\r\n localStorage.setItem(localStorageAccessConstant.impersonatedrole, '2');\r\n }\r\n this.sharedService.emitChange(SharedEvents.accountTypeChangedEvent); \r\n this.router.navigate(['/default-layout/fbos/']);\r\n }\r\n }\r\n\r\n stopManagingGroupClicked() {\r\n this.sharedService.currentUser.impersonatedRole = null;\r\n localStorage.removeItem(localStorageAccessConstant.impersonatedrole);\r\n localStorage.removeItem(localStorageAccessConstant.fboId);\r\n localStorage.removeItem(localStorageAccessConstant.managerGroupId);\r\n localStorage.removeItem(localStorageAccessConstant.groupId);\r\n this.sharedService.currentUser.fboId = 0;\r\n if (\r\n this.sharedService.currentUser.managerGroupId &&\r\n this.sharedService.currentUser.managerGroupId > 0\r\n ) {\r\n this.sharedService.currentUser.groupId =\r\n this.sharedService.currentUser.managerGroupId;\r\n }\r\n this.locations = [];\r\n this.fboAirport = null;\r\n this.fbo = null;\r\n this.close();\r\n this.sharedService.emitChange(SharedEvents.accountTypeChangedEvent); \r\n this.router.navigate(['/default-layout/groups/']);\r\n }\r\n\r\n updatePricingClicked() {\r\n this.needsAttentionMenu.isOpened = false;\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated']);\r\n this.close();\r\n }\r\n\r\n gotoCustomer(customer: any) {\r\n this.needsAttentionMenu.isOpened = false;\r\n this.router.navigate(['/default-layout/customers/' + customer.oid]);\r\n this.close();\r\n }\r\n\r\n viewAllNotificationsClicked() {\r\n this.needsAttentionMenu.isOpened = false;\r\n this.router.navigate(['/default-layout/customers']);\r\n this.close();\r\n }\r\n\r\n viewAllFuelOrdersClicked() {\r\n this.fuelOrderNotificationsMenu.isOpened = false;\r\n this.router.navigate(['/default-layout/fuelreqs']);\r\n this.close();\r\n }\r\n\r\n showLessClicked() {\r\n this.viewAllNotifications = false;\r\n }\r\n\r\n loadCurrentPrices() {\r\n this.fboPricesService\r\n .getFbopricesByFboIdAndProductCurrent(\r\n this.currentUser.fboId,\r\n 'JetA Cost'\r\n )\r\n .subscribe((data: any) => {\r\n this.currrentJetACostPricing = data;\r\n this.hasLoadedJetACost = true;\r\n });\r\n\r\n this.fboPricesService\r\n .getFbopricesByFboIdAndProductCurrent(\r\n this.currentUser.fboId,\r\n 'JetA Retail'\r\n )\r\n .subscribe((data: any) => {\r\n this.currrentJetARetailPricing = data;\r\n this.hasLoadedJetARetail = true;\r\n });\r\n }\r\n\r\n loadLocations() {\r\n if (!this.currentUser.groupId) {\r\n return;\r\n }\r\n this.isLocationsLoading = true;\r\n this.fbosService.getForGroup(this.currentUser.groupId).subscribe(\r\n (data: any) => {\r\n if (data && data.length) {\r\n this.locations = _.cloneDeep(data);\r\n }\r\n this.isLocationsLoading = false;\r\n },\r\n (error: any) => {\r\n this.isLocationsLoading = false;\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n loadFboInfo() {\r\n if (!this.currentUser.fboId && !localStorage.getItem(localStorageAccessConstant.fboId)) {\r\n return;\r\n }\r\n\r\n if (!this.currentUser.fboId) {\r\n this.currentUser.fboId = localStorage.getItem(localStorageAccessConstant.fboId);\r\n }\r\n\r\n this.fboAirportsService\r\n .getForFbo({\r\n oid: this.currentUser.fboId,\r\n })\r\n .subscribe(\r\n (data: any) => {\r\n this.fboAirport = _.assign({}, data);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.icao, this.fboAirport.icao);\r\n this.sharedService.emitChange(\r\n SharedEvents.icaoChangedEvent\r\n );\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n }\r\n );\r\n this.fbosService\r\n .get({\r\n oid: this.currentUser.fboId,\r\n })\r\n .subscribe(\r\n (data: any) => {\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.accountType, data.accountType);\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.isJetNetIntegrationEnabled, data.isJetNetIntegrationEnabled)\r\n this.sharedService.emitChange(SharedEvents.accountTypeChangedEvent);\r\n this.fbo = _.assign({}, data);\r\n localStorage.setItem(localStorageAccessConstant.fbo, this.fbo.fbo);\r\n this.integrationStatus = this.sharedService.currentUser.integrationStatus;\r\n\r\n if (this.sharedService.currentUser.role != 3) {\r\n this.fbosService.updateLastLogin(this.currentUser.fboId).subscribe((data: any) => {\r\n });\r\n }\r\n },\r\n (error: any) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n changeLocation(location: any) {\r\n this.isOpened = false;\r\n this.fboAirport.iata = location.iata;\r\n this.fboAirport.icao = location.icao;\r\n this.fboAirport.fboid = location.oid;\r\n this.accountProfileMenu.isOpened = false;\r\n this.needsAttentionMenu.isOpened = false;\r\n this.sharedService.currentUser.fboId = this.fboAirport.fboid;\r\n this.loadFboInfo();\r\n localStorage.setItem(localStorageAccessConstant.fboId,this.sharedService.currentUser.fboId.toString());\r\n\r\n this.sharedService.setCurrentUserPropertyValue(localStorageAccessConstant.icao,location.icao);\r\n\r\n this.fbosService.manageFbo(this.sharedService.currentUser.fboId).subscribe(() => {\r\n if (this.isOnDashboard())\r\n this.sharedService.emitChange(SharedEvents.locationChangedEvent);\r\n else\r\n this.router.navigate(['/default-layout/dashboard-fbo-updated/']).then();\r\n });\r\n }\r\n\r\n toggleProfileMenu() {\r\n if (this.isLocationsLoading) {\r\n return;\r\n }\r\n this.accountProfileMenu.isOpened = !this.accountProfileMenu.isOpened;\r\n }\r\n\r\n loadNeedsAttentionCustomers() {\r\n if (this.currentUser.fboId) {\r\n this.customerInfoByGroupService\r\n .getNeedsAttentionByGroupAndFbo(\r\n this.currentUser.groupId,\r\n this.currentUser.fboId\r\n )\r\n .subscribe((data: any) => {\r\n this.needsAttentionCustomersData = data;\r\n });\r\n }\r\n }\r\n\r\n showWidget() {\r\n if (this.window) {\r\n this.window.$zoho.salesiq.floatwindow.visible('show');\r\n }\r\n }\r\n\r\n hideWidget() {\r\n if (this.window) {\r\n this.window.$zoho.salesiq.floatwindow.visible('hide');\r\n }\r\n }\r\n\r\n loadUpcomingOrders() {\r\n this.fuelOrders.length = 0;\r\n var startDate = moment().add(-1, 'hour').local().toDate();\r\n var endDate = moment().add(2, 'd').local().toDate();\r\n\r\n this.fuelReqsService\r\n .getForGroupFboAndDateRange(\r\n this.sharedService.currentUser.groupId,\r\n this.sharedService.currentUser.fboId,\r\n startDate,\r\n endDate\r\n )\r\n .subscribe((data: any) => {\r\n if (data && data != null) {\r\n data.forEach(x => {\r\n if (!x || x.cancelled)\r\n return;\r\n if (x.timeStandard != null && x.timeStandard.toLowerCase() == 'z' ||\r\n x.timeStandard == '0')\r\n x.minutesUntilArrival =\r\n moment.duration(moment(x.eta).diff(moment().utc())).asMinutes();\r\n else\r\n x.minutesUntilArrival =\r\n moment.duration(moment(x.eta).diff(moment())).asMinutes();\r\n x.minutesUntilArrival = Math.round(x.minutesUntilArrival);\r\n x.hoursUntilArrival = Math.round(x.minutesUntilArrival / 60);\r\n this.fuelOrders.push(x);\r\n });\r\n }\r\n\r\n this.fuelOrders = this.fuelOrders.sort((x1, x2) => x1.minutesUntilArrival - x2.minutesUntilArrival);\r\n }, (error: any) => {\r\n\r\n });\r\n }\r\n public isLobbyViewVisible(): boolean {\r\n if (this.currentUser.accountType === AccountType.Freemium || this.currentUser.integrationStatus) return false;\r\n return this.currentUser &&\r\n (this.currentUser.role === UserRole.Primary ||\r\n this.currentUser.role === UserRole.CSR ||\r\n this.currentUser.role === UserRole.Member ||\r\n this.currentUser.role === UserRole.GroupAdmin ||\r\n this.currentUser.role === UserRole.Conductor\r\n );\r\n }\r\n public get userRole(){\r\n return UserRole;\r\n }\r\n\r\n loadAirportWatchData() {\r\n if(!this.selectedICAO || this.selectedICAO == 'undefined' || this.selectedICAO === undefined) return;\r\n \r\n this.flightWatchService\r\n .getAirportLiveData(\r\n this.sharedService.currentUser.fboId,\r\n this.selectedICAO\r\n )\r\n .subscribe((data: ApiResponseWraper) => {\r\n this.sharedService.valueChange(\r\n {\r\n event: SharedEvents.flightWatchDataEvent,\r\n data: data.result ?? null,\r\n });\r\n\r\n if (!data.success){\r\n console.log(\"flight watch data: message\", data.message);\r\n return;\r\n }\r\n\r\n if(!this.favoriteNotificationVisible) return;\r\n\r\n this.notifyIncomingAircrafts(data.result);\r\n\r\n }, (error: any) => {\r\n console.log(\"flight watch error:\", error)\r\n });\r\n }\r\n removeFavoriteAircraft(flightwatch: FlightWatchModelResponse):void{\r\n this.dismissedFavoriteAircrafts.push(flightwatch);\r\n this.favoriteAircraftsData = this.favoriteAircraftsData.filter(item => item.tailNumber != flightwatch.tailNumber);\r\n localStorage.setItem(localStorageAccessConstant.dismissedFavoriteAircrafts, JSON.stringify(this.dismissedFavoriteAircrafts));\r\n }\r\n goToFlightWatch(flightwatch: FlightWatchModelResponse):void{\r\n this.incomingFavoriteAircraftInfoComponent.goToFlightWatch(flightwatch);\r\n }\r\n // Private Methods\r\n private notifyIncomingAircrafts(data: FlightWatchModelResponse[]) {\r\n var filteredFavoriteAircrafts = data.filter(item => item.isCustomerManagerAircraft == true && item.favoriteAircraft != null && item.status == FlightLegStatus.EnRoute && item.etaLocal != null);\r\n this.favoriteAircraftsData =\r\n filteredFavoriteAircrafts?.filter(item =>\r\n !this.dismissedFavoriteAircrafts.some(obj => obj.tailNumber == item.tailNumber)\r\n );\r\n\r\n this.dismissedFavoriteAircrafts = this.dismissedFavoriteAircrafts.filter(item =>\r\n filteredFavoriteAircrafts.some(obj => obj.tailNumber == item.tailNumber)\r\n );\r\n localStorage.setItem(localStorageAccessConstant.dismissedFavoriteAircrafts, JSON.stringify(this.dismissedFavoriteAircrafts));\r\n\r\n let notNotifiedFavoriteAircraft =\r\n filteredFavoriteAircrafts?.filter(item =>\r\n !this.notifiedFavoriteAircraft.some(obj => obj.tailNumber == item.tailNumber)\r\n );\r\n\r\n localStorage.setItem(localStorageAccessConstant.notifiedFavoriteAircraft, JSON.stringify(this.notifiedFavoriteAircraft));\r\n\r\n this.notifiedFavoriteAircraft.push(...notNotifiedFavoriteAircraft);\r\n this.sendNotifications(notNotifiedFavoriteAircraft);\r\n }\r\n private sendNotifications(data: FlightWatchModelResponse[]) {\r\n data?.forEach(flightwatch => {\r\n this.incomingFavoriteAircraftInfoComponent.pushCustomNotification(flightwatch);\r\n });\r\n }\r\n private isOnDashboard(): boolean {\r\n if (!this.Location) {\r\n return false;\r\n }\r\n\r\n const urlInfo: any = this.Location.path();\r\n const dashboardResults = urlInfo.toLowerCase().indexOf('dashboard') > -1 ? true : false;\r\n if (!dashboardResults) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private canUserSeePricing(): boolean {\r\n return (\r\n [1, 4].includes(this.sharedService.currentUser.role) ||\r\n [1, 4].includes(this.sharedService.currentUser.impersonatedRole)\r\n );\r\n }\r\n}\r\n","\r\n\r\n \r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\nimport { FlightWatchModelResponse } from 'src/app/models/flight-watch';\r\nimport * as SharedEvents from 'src/app/constants/sharedEvents';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-incoming-favorite-aircraft-info',\r\n templateUrl: './incoming-favorite-aircraft-info.component.html',\r\n styleUrls: ['./incoming-favorite-aircraft-info.component.scss'],\r\n})\r\nexport class IncomingFavoriteAircraftInfoComponent implements OnInit {\r\n notifications: FlightWatchModelResponse[] = [];\r\n clickedAircraft: FlightWatchModelResponse = null;\r\n flightWatchUrl: string = '/default-layout/flight-watch';\r\n notificationTimeOut: number = 15000;\r\n\r\n subscription: Subscription;\r\n\r\n constructor(private router: Router, private sharedService: SharedService) {\r\n this.subscription = this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe((event: NavigationEnd) => {\r\n if (this.clickedAircraft == null) return;\r\n this.flyToNotificationEventChange();\r\n });\r\n }\r\n\r\n ngOnInit() {}\r\n ngOnDestroy(): void {\r\n if(this.subscription)\r\n this.subscription.unsubscribe();\r\n }\r\n pushCustomNotification(aircraftInfo: FlightWatchModelResponse) {\r\n this.notifications.unshift(aircraftInfo);\r\n\r\n setTimeout(() => {\r\n this.removeNotification(aircraftInfo);\r\n }, this.notificationTimeOut);\r\n }\r\n removeNotification(aircraftInfo: FlightWatchModelResponse) {\r\n const index = this.notifications.indexOf(aircraftInfo);\r\n if (index !== -1) this.notifications.splice(index, 1);\r\n }\r\n\r\n goToFlightWatch(flightwatch: FlightWatchModelResponse): void {\r\n this.clickedAircraft = flightwatch;\r\n this.removeNotification(flightwatch);\r\n if(this.router.url != this.flightWatchUrl)\r\n this.router.navigate(['/default-layout/flight-watch']);\r\n else\r\n this.flyToNotificationEventChange();\r\n }\r\n private flyToNotificationEventChange(): void {\r\n this.sharedService.valueChange({\r\n event: SharedEvents.flyToOnMapEvent,\r\n data: this.clickedAircraft,\r\n });\r\n this.clickedAircraft = null;\r\n }\r\n}\r\n","
0\">\r\n
\r\n
\r\n
\r\n \r\n close\r\n \r\n
\r\n \r\n Show me\r\n \r\n
\r\n
\r\n \r\n {{ flightwatch.tailNumber }}\r\n ({{\r\n flightwatch.icaoAircraftCode\r\n }})\r\n \r\n has been detected\r\n
ETA: {{ flightwatch.etaLocal | date: \"HH:mm\" }}\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n host: { class: 'app-logo' },\r\n selector: 'app-logo',\r\n styleUrls: ['logo.component.scss'],\r\n templateUrl: 'logo.component.html',\r\n})\r\nexport class LogoComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n}\r\n","\r\n \r\n\r\n\r\n\r\n \r\n\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n OnInit,\r\n QueryList,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { Observable, Subscription } from 'rxjs';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\nimport { ServiceOrderService } from 'src/app/services/serviceorder.service';\r\nimport { accountTypeChangedEvent, fboChangedEvent, fboPricesLoadedEvent, menuTooltipShowedEvent, serviceOrdersChangedEvent } from '../../../constants/sharedEvents';\r\nimport { UserService } from '../../../services/user.service';\r\nimport { MenuService } from './menu.service';\r\nimport { IMenuItem } from './menu-item';\r\nimport { ServiceOrder } from 'src/app/models/service-order';\r\nimport { EntityResponseMessage } from 'src/app/models/entity-response-message';\r\n\r\nimport * as moment from 'moment';\r\n\r\n@Component({\r\n host: { class: 'app-menu' },\r\n providers: [MenuService],\r\n selector: 'app-menu',\r\n styleUrls: ['./menu.component.scss'],\r\n templateUrl: './menu.component.html',\r\n})\r\nexport class MenuComponent implements OnInit, AfterViewInit {\r\n @ViewChildren('tooltip') priceTooltips: QueryList;\r\n\r\n menuItems: IMenuItem[];\r\n user: any;\r\n tooltipIndex = 0;\r\n hasShownTutorial = false;\r\n\r\n changeEmittedSubscription: Subscription;\r\n integrationStatus: boolean = false;\r\n\r\n constructor(\r\n private menuService: MenuService,\r\n private sharedService: SharedService,\r\n private userService: UserService,\r\n private serviceOrderService: ServiceOrderService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.getMenuItems();\r\n\r\n }\r\n ngOnDestroy() {\r\n this.changeEmittedSubscription?.unsubscribe();\r\n }\r\n ngAfterViewInit(): void {\r\n this.changeEmittedSubscription = this.sharedService.changeEmitted$.subscribe((message) => {\r\n if (message === fboChangedEvent || message === accountTypeChangedEvent) {\r\n this.menuService.setMenuProps(this.menuItems);\r\n }\r\n if (message === fboPricesLoadedEvent) {\r\n this.showTooltipsIfFirstLogin();\r\n this.showPendingServiceOrders();\r\n }\r\n if (message === serviceOrdersChangedEvent) {\r\n this.showPendingServiceOrders();\r\n }\r\n });\r\n }\r\n\r\n getMenuItems(): void {\r\n const OBSERVER = {\r\n error: (err) => this.menuService.handleError(err),\r\n next: (x) => {\r\n this.menuItems = x;\r\n this.menuService.setMenuProps(this.menuItems); \r\n },\r\n };\r\n this.menuService.getData().subscribe(OBSERVER);\r\n }\r\n\r\n getItemNgClass(item: any, isActive: boolean) {\r\n return {\r\n ...item.class,\r\n active: isActive\r\n };\r\n }\r\n\r\n isHidden(item: any) {\r\n let role = this.sharedService.currentUser.role;\r\n if (this.sharedService.currentUser.impersonatedRole) {\r\n role = this.sharedService.currentUser.impersonatedRole;\r\n }\r\n return (item.title != 'Dashboard' && this.sharedService.currentUser.integrationStatus) || (item.roles && item.roles.indexOf(role) === -1);\r\n }\r\n\r\n getStyles(item: any) {\r\n return {\r\n background: item.bg,\r\n color: item.color,\r\n };\r\n }\r\n\r\n toggle(event: Event, item: any, el: any) {\r\n event.preventDefault();\r\n\r\n const items: any[] = el.menuItems;\r\n\r\n if (item.active) {\r\n item.active = false;\r\n } else {\r\n for (const i of items) {\r\n i.active = false;\r\n }\r\n item.active = true;\r\n }\r\n }\r\n\r\n getLoggedInUser() {\r\n return new Observable((observer) => {\r\n if (this.user) {\r\n observer.next(this.user);\r\n } else {\r\n this.userService.getCurrentUser().subscribe((user) => {\r\n this.user = user;\r\n observer.next(user);\r\n });\r\n }\r\n });\r\n }\r\n\r\n showTooltipsIfFirstLogin() {\r\n this.getLoggedInUser().subscribe((user: any) => {\r\n if (user && !user.goOverTutorial && !this.hasShownTutorial) {\r\n this.hasShownTutorial = true;\r\n setTimeout(() => {\r\n const tooltipsArr = this.priceTooltips.toArray();\r\n tooltipsArr[this.tooltipIndex].open();\r\n this.tooltipIndex++;\r\n }, 400);\r\n }\r\n });\r\n }\r\n\r\n tooltipHidden() {\r\n const tooltipsArr = this.priceTooltips.toArray();\r\n if (this.tooltipIndex === 1) {\r\n this.user.goOverTutorial = true;\r\n this.userService.update(this.user).subscribe(() => {});\r\n }\r\n if (tooltipsArr.length > this.tooltipIndex) {\r\n setTimeout(() => {\r\n tooltipsArr[this.tooltipIndex].open();\r\n this.tooltipIndex++;\r\n }, 400);\r\n } else {\r\n this.sharedService.emitChange(menuTooltipShowedEvent);\r\n }\r\n }\r\n\r\n showPendingServiceOrders() {\r\n var serviceOrderMenuItemMatches = this.menuItems?.filter(x => x.title == 'Service Orders');\r\n if (!serviceOrderMenuItemMatches || serviceOrderMenuItemMatches.length == 0)\r\n return;\r\n var serviceOrderMenuItem = serviceOrderMenuItemMatches[0];\r\n this.serviceOrderService.getServiceOrdersForFbo(this.sharedService.currentUser.fboId, moment().add(-30, 'days').toDate(), moment().add(30, 'days').toDate()).subscribe((response: EntityResponseMessage>) => {\r\n if (response.success && response.result != null) {\r\n var inCompleteItems = response.result.filter(x => !x.isCompleted).length;\r\n if (inCompleteItems > 0) {\r\n setTimeout(() => {\r\n serviceOrderMenuItem.badge = {\r\n text: inCompleteItems.toString(),\r\n color: '#FFFFFF'\r\n };\r\n });\r\n }\r\n else {\r\n setTimeout(() => {\r\n serviceOrderMenuItem.badge = {};\r\n });\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { throwError as observableThrowError } from 'rxjs';\r\nimport { IMenuItem } from './menu-item';\r\nimport { AccountType } from 'src/app/enums/user-role';\r\nimport { SharedService } from 'src/app/layouts/shared-service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MenuService {\r\n constructor(\r\n private http: HttpClient,\r\n private sharedService: SharedService\r\n ) {}\r\n\r\n public freemiumDisabledMenuItemsUrls = [\r\n \"/default-layout/flight-watch\",\r\n \"/default-layout/pricing-templates\",\r\n \"/default-layout/email-templates\",\r\n \"/default-layout/customers\",\r\n \"/default-layout/analytics\"\r\n ];\r\n\r\n public getData() {\r\n const URL = '../../../../assets/data/main-menu.json';\r\n return this.http.get(URL);\r\n }\r\n\r\n public handleError(error: any) {\r\n return observableThrowError(error.error || 'Server Error');\r\n }\r\n public setMenuProps(menuItems: IMenuItem[]): void {\r\n if(menuItems == null) return;\r\n if (this.sharedService.currentUser.accountType == AccountType.Premium){\r\n this.enableMenuItems(menuItems);\r\n }else{\r\n this.DisabledMenuItems(menuItems);\r\n }\r\n\r\n\r\n }\r\n private DisabledMenuItems(menuItems: IMenuItem[]): void {\r\n menuItems.forEach(element => {\r\n if(this.freemiumDisabledMenuItemsUrls.includes(element.routing))\r\n element.disabled = true;\r\n else\r\n element.disabled = false;\r\n \r\n element.class = this.getLiClass(element);\r\n\r\n });\r\n }\r\n private enableMenuItems(menuItems: IMenuItem[]): void {\r\n menuItems.forEach(element => {\r\n element.disabled = false;\r\n element.class = this.getLiClass(element);\r\n });\r\n }\r\n private getLiClass(item: any) {\r\n let role = this.sharedService.currentUser.role;\r\n if (this.sharedService.currentUser.impersonatedRole) {\r\n role = this.sharedService.currentUser.impersonatedRole;\r\n }\r\n\r\n const hidden = item.roles && item.roles.indexOf(role) === -1;\r\n const isDisabled = (this.sharedService.currentUser.accountType == AccountType.Premium || !this.sharedService.currentUser?.accountType) ? false : item.disabled;\r\n return {\r\n active: item.active || false, // Active class will be set in the template based on rla.isActive\r\n disabled: isDisabled,\r\n 'has-sub': item.sub,\r\n hidden,\r\n 'menu-item-group': item.groupTitle,\r\n };\r\n \r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { SharedService } from '../../../layouts/shared-service';\r\n\r\n@Component({\r\n selector: 'app-vertical-navbar',\r\n styleUrls: ['vertical-navbar.component.scss'],\r\n templateUrl: 'vertical-navbar.component.html',\r\n})\r\nexport class VerticalNavbarComponent {\r\n @Input() isMenuVisible: boolean;\r\n}\r\n","\r\n\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\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 { 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 { 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 { RouterModule } from '@angular/router';\r\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n NgxMatDatetimePickerModule,\r\n NgxMatNativeDateModule,\r\n NgxMatTimepickerModule\r\n} from '@angular-material-components/datetime-picker';\r\n\r\nimport { NiComponentsModule } from '../ni-components/ni-components.module';\r\nimport { AdditionNavbarComponent } from './components/addition-navbar/addition-navbar.component';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { HorizontalNavbarComponent } from './components/horizontal-navbar/horizontal-navbar.component';\r\nimport { LogoComponent } from './components/logo/logo.component';\r\nimport { MenuComponent } from './components/menu/menu.component';\r\nimport { VerticalNavbarComponent } from './components/vertical-navbar/vertical-navbar.component';\r\nimport { AppPipesModule } from \"../app-pipes.module\";\r\nimport { DemoRequestStaticDialogComponent } from '../pages/demo-request-static-dialog/demo-request-static-dialog.component';\r\nimport { IncomingFavoriteAircraftInfoComponent } from './components/incoming-favorite-aircraft-info/incoming-favorite-aircraft-info.component';\r\nimport {JetNetSearchComponent } from \"../shared/components/jetnet-search/jetnet-search.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n HorizontalNavbarComponent,\r\n VerticalNavbarComponent,\r\n AdditionNavbarComponent,\r\n LogoComponent,\r\n MenuComponent,\r\n FooterComponent,\r\n DemoRequestStaticDialogComponent,\r\n IncomingFavoriteAircraftInfoComponent,\r\n JetNetSearchComponent\r\n ],\r\n exports: [\r\n HorizontalNavbarComponent,\r\n VerticalNavbarComponent,\r\n AdditionNavbarComponent,\r\n LogoComponent,\r\n MenuComponent,\r\n FooterComponent,\r\n DemoRequestStaticDialogComponent,\r\n IncomingFavoriteAircraftInfoComponent,\r\n JetNetSearchComponent\r\n ],\r\n imports: [\r\n HttpClientModule,\r\n CommonModule,\r\n RouterModule,\r\n NiComponentsModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\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 NgbPopoverModule,\r\n NgxMatDatetimePickerModule,\r\n NgxMatTimepickerModule,\r\n NgxMatNativeDateModule,\r\n AppPipesModule\r\n ]\r\n})\r\nexport class UIModule {}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n mapbox: {\r\n accessToken: 'pk.eyJ1IjoiZnVlbGVybGlueCIsImEiOiJja3NzODNqcG4wdHVrMm9rdHU3OGRpb2dmIn0.LvSvlGG0ej3PEDJOBpOoMQ'\r\n },\r\n flightWatch: {\r\n apiCallInterval: 5000,\r\n }\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\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\nexport const getBaseUrl = () => document.getElementsByTagName('base')[0].href;\r\n\r\nconst providers = [{ deps: [], provide: 'BASE_URL', useFactory: getBaseUrl }];\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic(providers)\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.error(err));\r\n","export const COMMERCIAL_AIRCRAFT_FLIGHT_NUMBER = [\r\n 'AAL',\r\n 'AAY',\r\n 'ACA',\r\n 'AIJ',\r\n 'AMF',\r\n 'AMX',\r\n 'ANA',\r\n 'ASA',\r\n 'ASH',\r\n 'ATN',\r\n 'AWI',\r\n 'BAW',\r\n 'DAL',\r\n 'DLH',\r\n 'EDV',\r\n 'ENY',\r\n 'FDX',\r\n 'FFT',\r\n 'GDP',\r\n 'GEC',\r\n 'HAL',\r\n 'JBU',\r\n 'JIA',\r\n 'JSX',\r\n 'KAP',\r\n 'KLM',\r\n 'MTN',\r\n 'NKS',\r\n 'PDT',\r\n 'POE',\r\n 'QTR',\r\n 'QXE',\r\n 'ROU',\r\n 'RPA',\r\n 'SCX',\r\n 'SIL',\r\n 'SKW',\r\n 'SNC',\r\n 'SWA',\r\n 'SWG',\r\n 'TSC',\r\n 'UAE',\r\n 'UAL',\r\n 'UCA',\r\n 'UPS',\r\n 'VIV',\r\n 'VOI',\r\n 'WAF',\r\n 'WJA'\r\n];\r\n\r\nexport const isCommercialAircraft = (flightNumber: string) : boolean =>\r\n COMMERCIAL_AIRCRAFT_FLIGHT_NUMBER.some((startNum) =>\r\n flightNumber?.toUpperCase().startsWith(startNum)\r\n );\r\n\r\nexport const isCommercialAircraftInFlightNumbers = (flightNumbers: string[]): boolean => {\r\n if (!flightNumbers)\r\n return false;\r\n if (flightNumbers.length == 0)\r\n return false;\r\n var matches = COMMERCIAL_AIRCRAFT_FLIGHT_NUMBER.filter((startNum) => (flightNumbers.some(f => f.toUpperCase().startsWith(startNum))));\r\n return (matches && matches.length > 0);\r\n}\r\n \r\n","export const convertDMSToDEG = (dms:string): number => { \r\n let dms_Array = dms.split(/[^\\d]+/);\r\n\r\n let degrees = dms_Array[1];\r\n let minutes = dms_Array[2];\r\n let seconds = dms_Array[3];\r\n let direction = dms[0];\r\n\r\n let deg = Number((Number(degrees) + Number(minutes)/60 + Number(seconds)/3600).toFixed(6));\r\n\r\n if (direction == \"S\" || direction == \"W\") {\r\n deg = deg * -1;\r\n } // Don't do anything for N or E\r\n return deg;\r\n}","export const validateEmail = (email: string) => {\r\n const re =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return re.test(String(email).toLowerCase());\r\n};\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-ps\": 46235,\n\t\"./ar-ps.js\": 46235,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku-kmr\": 19619,\n\t\"./ku-kmr.js\": 19619,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\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 = 46700;","/* (ignored) */","/* (ignored) */"],"names":[],"sourceRoot":"webpack:///"}