From 34b4227148cf09bf3c138e94977d9cbc2fc262b2 Mon Sep 17 00:00:00 2001 From: Amritanshu Date: Tue, 30 Apr 2024 12:48:11 +0530 Subject: [PATCH] Chore: Upgraded to Angular v17 and all the refactoring for that Chore: Updated all dependencies in overlord --- .vscode/launch.json | 7 + .../versions/12262aadbc08_recipe_templates.py | 1 + .../versions/185c674cc392_load_data.py | 1 + brewman/alembic/versions/2438cd581f00_nut.py | 1 + brewman/alembic/versions/48af31eb6f3f_fp.py | 1 + .../alembic/versions/66abfc21db73_allergen.py | 1 + .../versions/a1372ed99c45_recipe_upgrade.py | 1 + .../alembic/versions/ba0fff092981_price.py | 1 + brewman/brewman/routers/account.py | 4 +- brewman/brewman/routers/employee.py | 4 +- brewman/brewman/routers/rebase.py | 2 +- docker/app/Dockerfile | 2 +- overlord/.gitignore | 17 +-- overlord/angular.json | 35 ++--- overlord/package.json | 78 +++++----- .../account-detail.component.html | 20 ++- .../account-list/account-list.component.html | 4 +- .../app/attendance/attendance.component.html | 33 +++-- .../app/attendance/attendance.component.ts | 2 +- .../src/app/auth/login/login.component.html | 16 +- .../balance-sheet/balance-sheet.component.ts | 2 +- .../batch-integrity-report.component.html | 12 +- .../src/app/cash-flow/cash-flow.component.ts | 2 +- .../client-list/client-list.component.html | 2 +- .../closing-stock.component.html | 41 +++--- .../closing-stock/closing-stock.component.ts | 2 +- .../app/core/nav-bar/nav-bar.component.html | 20 ++- overlord/src/app/daybook/daybook.component.ts | 2 +- .../employee-attendance.component.html | 37 +++-- .../employee-attendance.component.ts | 2 +- .../employee-benefits.component.html | 33 ++--- .../employee-benefits.component.ts | 2 +- .../employee-functions.component.ts | 2 +- .../employee-detail.component.html | 38 +++-- .../employee-detail.component.ts | 2 +- .../employee-list.component.html | 12 +- .../src/app/entries/entries.component.html | 8 +- overlord/src/app/entries/entries.component.ts | 2 +- .../app/incentive/incentive.component.html | 29 ++-- .../src/app/incentive/incentive.component.ts | 2 +- .../src/app/issue/issue-dialog.component.html | 4 +- overlord/src/app/issue/issue.component.html | 42 +++--- overlord/src/app/issue/issue.component.ts | 2 +- .../app/journal/journal-dialog.component.html | 14 +- .../src/app/journal/journal.component.html | 65 ++++---- overlord/src/app/journal/journal.component.ts | 2 +- overlord/src/app/ledger/ledger.component.html | 12 +- overlord/src/app/ledger/ledger.component.ts | 2 +- .../net-transactions.component.ts | 2 +- .../app/payment/payment-dialog.component.html | 14 +- .../src/app/payment/payment.component.html | 73 +++++---- overlord/src/app/payment/payment.component.ts | 2 +- .../period-detail.component.html | 4 +- .../period-detail/period-detail.component.ts | 2 +- .../product-ledger.component.html | 12 +- .../product-ledger.component.ts | 2 +- .../product-detail.component.html | 139 ++++++++++-------- .../product-list/product-list.component.html | 38 +++-- .../app/profit-loss/profit-loss.component.ts | 2 +- .../purchase-entries.component.ts | 2 +- .../purchase-return-dialog.component.html | 4 +- .../purchase-return.component.html | 69 +++++---- .../purchase-return.component.ts | 2 +- .../purchase/purchase-dialog.component.html | 4 +- .../src/app/purchase/purchase.component.html | 69 +++++---- .../src/app/purchase/purchase.component.ts | 2 +- .../src/app/purchases/purchases.component.ts | 2 +- .../rate-contract-detail.component.html | 8 +- .../rate-contract-detail.component.ts | 2 +- .../rate-contract-list.component.html | 4 +- .../raw-material-cost.component.html | 23 +-- .../raw-material-cost.component.ts | 2 +- .../app/receipt/receipt-dialog.component.html | 14 +- .../src/app/receipt/receipt.component.html | 73 +++++---- overlord/src/app/receipt/receipt.component.ts | 2 +- .../recipe-template-detail.component.ts | 2 +- .../recipe-detail.component.html | 14 +- .../recipe-detail/recipe-detail.component.ts | 2 +- .../recipe-list/recipe-list.component.html | 12 +- .../role-detail/role-detail.component.html | 12 +- .../role/role-list/role-list.component.html | 4 +- .../src/app/settings/settings.component.html | 116 ++++++++------- .../src/app/settings/settings.component.ts | 2 +- overlord/src/app/shared/local-time.pipe.ts | 2 +- .../stock-movement.component.ts | 2 +- .../trial-balance/trial-balance.component.ts | 2 +- .../user-detail/user-detail.component.html | 12 +- .../user/user-list/user-list.component.html | 6 +- overlord/tsconfig.json | 3 +- 89 files changed, 776 insertions(+), 613 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 78b77a89..bd5b3e12 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -11,6 +11,13 @@ "preLaunchTask": "npm: start", "url": "http://localhost:4200/" }, + { + "name": "ng test", + "type": "chrome", + "request": "launch", + "preLaunchTask": "npm: test", + "url": "http://localhost:9876/debug.html" + }, { "name": "Python: FastAPI", "type": "python", diff --git a/brewman/alembic/versions/12262aadbc08_recipe_templates.py b/brewman/alembic/versions/12262aadbc08_recipe_templates.py index 782846ea..48f307d3 100644 --- a/brewman/alembic/versions/12262aadbc08_recipe_templates.py +++ b/brewman/alembic/versions/12262aadbc08_recipe_templates.py @@ -5,6 +5,7 @@ Revises: a1372ed99c45 Create Date: 2023-04-14 07:50:22.110724 """ + import sqlalchemy as sa from alembic import op diff --git a/brewman/alembic/versions/185c674cc392_load_data.py b/brewman/alembic/versions/185c674cc392_load_data.py index 767a6777..a9f7d751 100644 --- a/brewman/alembic/versions/185c674cc392_load_data.py +++ b/brewman/alembic/versions/185c674cc392_load_data.py @@ -5,6 +5,7 @@ Revises: 0bf3d70ee7de Create Date: 2022-10-31 06:23:13.091598 """ + from hashlib import md5 import sqlalchemy as sa diff --git a/brewman/alembic/versions/2438cd581f00_nut.py b/brewman/alembic/versions/2438cd581f00_nut.py index a9ce1b18..4a7f9088 100644 --- a/brewman/alembic/versions/2438cd581f00_nut.py +++ b/brewman/alembic/versions/2438cd581f00_nut.py @@ -5,6 +5,7 @@ Revises: ba0fff092981 Create Date: 2023-10-16 16:26:45.922654 """ + import sqlalchemy as sa from alembic import op diff --git a/brewman/alembic/versions/48af31eb6f3f_fp.py b/brewman/alembic/versions/48af31eb6f3f_fp.py index 0ae5e018..16faa7ab 100644 --- a/brewman/alembic/versions/48af31eb6f3f_fp.py +++ b/brewman/alembic/versions/48af31eb6f3f_fp.py @@ -5,6 +5,7 @@ Revises: 12262aadbc08 Create Date: 2023-08-07 13:01:05.401492 """ + from alembic import op diff --git a/brewman/alembic/versions/66abfc21db73_allergen.py b/brewman/alembic/versions/66abfc21db73_allergen.py index 9749e27e..ceb60b8e 100644 --- a/brewman/alembic/versions/66abfc21db73_allergen.py +++ b/brewman/alembic/versions/66abfc21db73_allergen.py @@ -5,6 +5,7 @@ Revises: 2438cd581f00 Create Date: 2023-12-28 12:45:01.275322 """ + import sqlalchemy as sa from alembic import op diff --git a/brewman/alembic/versions/a1372ed99c45_recipe_upgrade.py b/brewman/alembic/versions/a1372ed99c45_recipe_upgrade.py index 43a143b5..47644c2b 100644 --- a/brewman/alembic/versions/a1372ed99c45_recipe_upgrade.py +++ b/brewman/alembic/versions/a1372ed99c45_recipe_upgrade.py @@ -5,6 +5,7 @@ Revises: 185c674cc392 Create Date: 2023-03-31 05:03:40.408240 """ + import sqlalchemy as sa from sqlalchemy import func diff --git a/brewman/alembic/versions/ba0fff092981_price.py b/brewman/alembic/versions/ba0fff092981_price.py index 42d47945..df5c78d1 100644 --- a/brewman/alembic/versions/ba0fff092981_price.py +++ b/brewman/alembic/versions/ba0fff092981_price.py @@ -5,6 +5,7 @@ Revises: 48af31eb6f3f Create Date: 2023-08-11 18:12:51.293741 """ + import sqlalchemy as sa from alembic import op diff --git a/brewman/brewman/routers/account.py b/brewman/brewman/routers/account.py index dabbe295..721b5b39 100644 --- a/brewman/brewman/routers/account.py +++ b/brewman/brewman/routers/account.py @@ -245,7 +245,7 @@ def delete_with_data(account: Account, db: Session) -> None: assert acc_jnl is not None if sus_jnl is None: acc_jnl.account = suspense_account - voucher.narration += f"\nSuspense \u20B9{acc_jnl.amount:,.2f} is {account.name}" + voucher.narration += f"\nSuspense \u20b9{acc_jnl.amount:,.2f} is {account.name}" else: amount = (sus_jnl.debit * sus_jnl.amount) + (acc_jnl.debit * acc_jnl.amount) db.delete(acc_jnl) @@ -254,7 +254,7 @@ def delete_with_data(account: Account, db: Session) -> None: else: sus_jnl.amount = abs(amount) sus_jnl.debit = -1 if amount < 0 else 1 - voucher.narration += f"\nDeleted \u20B9{acc_jnl.amount * acc_jnl.debit:,.2f} of {account.name}" + voucher.narration += f"\nDeleted \u20b9{acc_jnl.amount * acc_jnl.debit:,.2f} of {account.name}" if voucher.voucher_type in ( VoucherType.PAYMENT, VoucherType.RECEIPT, diff --git a/brewman/brewman/routers/employee.py b/brewman/brewman/routers/employee.py index 4e6bae29..8e760fba 100644 --- a/brewman/brewman/routers/employee.py +++ b/brewman/brewman/routers/employee.py @@ -232,7 +232,7 @@ def delete_with_data(employee: Employee, db: Session) -> None: assert acc_jnl is not None if sus_jnl is None: acc_jnl.account = suspense_account - voucher.narration += f"\nSuspense \u20B9 {acc_jnl.amount:,.2f} is {employee.name}" + voucher.narration += f"\nSuspense \u20b9 {acc_jnl.amount:,.2f} is {employee.name}" else: amount = (sus_jnl.debit * sus_jnl.amount) + (acc_jnl.debit * acc_jnl.amount) if acc_jnl.employee_benefit is not None: @@ -243,7 +243,7 @@ def delete_with_data(employee: Employee, db: Session) -> None: else: sus_jnl.amount = abs(amount) sus_jnl.debit = -1 if amount < 0 else 1 - voucher.narration += f"\nDeleted \u20B9 {acc_jnl.amount * acc_jnl.debit:,.2f} of {employee.name}" + voucher.narration += f"\nDeleted \u20b9 {acc_jnl.amount * acc_jnl.debit:,.2f} of {employee.name}" if voucher.voucher_type in ( VoucherType.PAYMENT, VoucherType.RECEIPT, diff --git a/brewman/brewman/routers/rebase.py b/brewman/brewman/routers/rebase.py index b8600d9a..c2b7d139 100644 --- a/brewman/brewman/routers/rebase.py +++ b/brewman/brewman/routers/rebase.py @@ -95,7 +95,7 @@ def save_starred(date_: date, db: Session) -> list[uuid.UUID]: for other in others: if voucher.voucher_type != VoucherType.OPENING_ACCOUNTS: - voucher.narration += f"\nSuspense \u20B9{other.amount:,.2f} is {other.account.name}" + voucher.narration += f"\nSuspense \u20b9{other.amount:,.2f} is {other.account.name}" if other.employee_benefit: db.delete(other.employee_benefit) if other.incentive: diff --git a/docker/app/Dockerfile b/docker/app/Dockerfile index e83580ce..495169cd 100644 --- a/docker/app/Dockerfile +++ b/docker/app/Dockerfile @@ -39,7 +39,7 @@ ARG INSTALL_DEV=false RUN bash -c "if [ $INSTALL_DEV == 'true' ] ; then poetry install --no-root ; else poetry install --no-root --only main ; fi" COPY --from=builder /app/brewman /app -COPY --from=builder /app/frontend /app/frontend +COPY --from=builder /app/frontend/browser /app/frontend ENV PYTHONPATH=/app EXPOSE 80 diff --git a/overlord/.gitignore b/overlord/.gitignore index 3f8a8401..41adae5e 100644 --- a/overlord/.gitignore +++ b/overlord/.gitignore @@ -4,16 +4,14 @@ /dist /tmp /out-tsc -# Only exists if Bazel was run /bazel-out -# dependencies +# Node /node_modules +npm-debug.log +yarn-error.log package-lock.json -# profiling files -chrome-profiler-events*.json - # IDEs and editors /.idea .project @@ -23,7 +21,7 @@ chrome-profiler-events*.json .settings/ *.sublime-workspace -# IDE - VSCode +# Visual Studio Code .vscode/* !.vscode/settings.json !.vscode/tasks.json @@ -31,14 +29,13 @@ chrome-profiler-events*.json !.vscode/extensions.json .history/* -# misc +# Miscellaneous /.angular/cache -/.sass-cache +/.nx/cache +.sass-cache/ /connect.lock /coverage /libpeerconnection.log -npm-debug.log -yarn-error.log testem.log /typings diff --git a/overlord/angular.json b/overlord/angular.json index 907ced64..3cb8e5e3 100644 --- a/overlord/angular.json +++ b/overlord/angular.json @@ -6,6 +6,9 @@ "overlord": { "projectType": "application", "schematics": { + "@schematics/angular:component": { + "style": "scss" + }, "@schematics/angular:application": { "strict": true } @@ -15,11 +18,12 @@ "prefix": "app", "architect": { "build": { - "builder": "@angular-devkit/build-angular:browser", + "builder": "@angular-devkit/build-angular:application", "options": { - "outputPath": "../frontend", + "outputPath": { + "base": "../frontend" + }, "index": "src/index.html", - "main": "src/main.ts", "polyfills": [ "zone.js" ], @@ -32,7 +36,8 @@ "@angular/material/prebuilt-themes/indigo-pink.css", "src/styles.css" ], - "scripts": [] + "scripts": [], + "browser": "src/main.ts" }, "configurations": { "production": { @@ -40,7 +45,7 @@ { "type": "initial", "maximumWarning": "500kb", - "maximumError": "1mb" + "maximumError": "1500kb" }, { "type": "anyComponentStyle", @@ -57,9 +62,7 @@ "outputHashing": "all" }, "development": { - "buildOptimizer": false, "optimization": false, - "vendorChunk": true, "extractLicenses": false, "sourceMap": true, "namedChunks": true @@ -71,10 +74,10 @@ "builder": "@angular-devkit/build-angular:dev-server", "configurations": { "production": { - "browserTarget": "overlord:build:production" + "buildTarget": "overlord:build:production" }, "development": { - "browserTarget": "overlord:build:development" + "buildTarget": "overlord:build:development" } }, "options": { @@ -85,18 +88,18 @@ "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { - "browserTarget": "overlord:build" + "buildTarget": "overlord:build" } }, "test": { "builder": "@angular-devkit/build-angular:karma", "options": { - "main": "src/test.ts", "polyfills": [ "zone.js", "zone.js/testing" ], "tsConfig": "tsconfig.spec.json", + "inlineStyleLanguage": "scss", "assets": [ "src/favicon.ico", "src/assets" @@ -124,14 +127,6 @@ "schematicCollections": [ "@angular-eslint/schematics" ], - "analytics": "0309c8d2-99a2-4dd3-b63e-9a0a43611460" - }, - "schematics": { - "@angular-eslint/schematics:application": { - "setParserOptionsProject": true - }, - "@angular-eslint/schematics:library": { - "setParserOptionsProject": true - } + "analytics": false } } diff --git a/overlord/package.json b/overlord/package.json index 90a571b0..97bf8a9e 100644 --- a/overlord/package.json +++ b/overlord/package.json @@ -14,47 +14,47 @@ }, "private": true, "dependencies": { - "@angular/animations": "^16.1.6", - "@angular/cdk": "^16.1.5", - "@angular/common": "^16.1.6", - "@angular/compiler": "^16.1.6", - "@angular/core": "^16.1.6", - "@angular/forms": "^16.1.6", - "@angular/material": "^16.1.5", - "@angular/material-moment-adapter": "^16.1.5", - "@angular/platform-browser": "^16.1.6", - "@angular/platform-browser-dynamic": "^16.1.6", - "@angular/router": "^16.1.6", + "@angular/animations": "^17.3.6", + "@angular/cdk": "^17.3.6", + "@angular/common": "^17.3.6", + "@angular/compiler": "^17.3.6", + "@angular/core": "^17.3.6", + "@angular/forms": "^17.3.6", + "@angular/material": "^17.3.6", + "@angular/material-moment-adapter": "^17.3.6", + "@angular/platform-browser": "^17.3.6", + "@angular/platform-browser-dynamic": "^17.3.6", + "@angular/router": "^17.3.6", "@ngx-loading-bar/core": "^6.0.2", "@ngx-loading-bar/http-client": "^6.0.2", "@ngx-loading-bar/router": "^6.0.2", - "@types/mousetrap": "1.6.11", - "angular2-hotkeys": "^15.0.0", - "mathjs": "^11.9.0", - "moment": "^2.29.4", + "@types/mousetrap": "1.6.15", + "angular2-hotkeys": "^16.0.1", + "mathjs": "^12.4.2", + "moment": "^2.30.1", "rxjs": "~7.8.0", "tslib": "^2.6.0", - "zone.js": "~0.13.1" + "zone.js": "~0.14.4" }, "devDependencies": { - "@angular-devkit/build-angular": "^16.1.5", - "@angular-eslint/builder": "^16.1.0", - "@angular-eslint/eslint-plugin": "^16.1.0", - "@angular-eslint/eslint-plugin-template": "^16.1.0", - "@angular-eslint/schematics": "^16.1.0", - "@angular-eslint/template-parser": "^16.1.0", - "@angular/cli": "^16.1.5", - "@angular/compiler-cli": "^16.1.6", - "@angular/language-service": "^16.1.6", - "@types/jasmine": "~4.3.5", - "@typescript-eslint/eslint-plugin": "^6.1.0", - "@typescript-eslint/parser": "^6.1.0", - "autoprefixer": "^10.4.14", - "eslint": "^8.39.0", - "eslint-config-prettier": "^8.7.0", - "eslint-plugin-import": "^2.27.5", - "eslint-plugin-unused-imports": "^3.0.0", - "husky": "^8.0.2", + "@angular-devkit/build-angular": "^17.3.6", + "@angular-eslint/builder": "^17.3.0", + "@angular-eslint/eslint-plugin": "^17.3.0", + "@angular-eslint/eslint-plugin-template": "^17.3.0", + "@angular-eslint/schematics": "^17.3.0", + "@angular-eslint/template-parser": "^17.3.0", + "@angular/cli": "^17.3.6", + "@angular/compiler-cli": "^17.3.6", + "@angular/language-service": "^17.3.6", + "@types/jasmine": "~5.1.4", + "@typescript-eslint/eslint-plugin": "^7.2.0", + "@typescript-eslint/parser": "^7.2.0", + "autoprefixer": "^10.4.19", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-unused-imports": "^3.1.0", + "husky": "^9.0.11", "jasmine-core": "~5.1.0", "jasmine-spec-reporter": "7.0.0", "karma": "^6.4.2", @@ -62,12 +62,12 @@ "karma-coverage": "~2.2.1", "karma-jasmine": "~5.1.0", "karma-jasmine-html-reporter": "^2.1.0", - "lint-staged": "^13.2.3", - "postcss": "^8.4.27", - "prettier": "^3.0.0", + "lint-staged": "^15.2.2", + "postcss": "^8.4.38", + "prettier": "^3.2.5", "standard-version": "^9.5.0", - "tailwindcss": "^3.3.3", - "typescript": "~5.1.6" + "tailwindcss": "^3.4.3", + "typescript": "~5.4.5" }, "husky": { "hooks": { diff --git a/overlord/src/app/account/account-detail/account-detail.component.html b/overlord/src/app/account/account-detail/account-detail.component.html index 6a81203b..330a887e 100644 --- a/overlord/src/app/account/account-detail/account-detail.component.html +++ b/overlord/src/app/account/account-detail/account-detail.component.html @@ -25,9 +25,11 @@ Account Type - - {{ at.name }} - + @for (at of accountTypes; track at) { + + {{ at.name }} + + } @@ -39,9 +41,11 @@ Cost Centre - - {{ cs.name }} - + @for (cs of costCentres; track cs) { + + {{ cs.name }} + + } @@ -49,6 +53,8 @@ - + @if (!!item.id) { + + } diff --git a/overlord/src/app/account/account-list/account-list.component.html b/overlord/src/app/account/account-list/account-list.component.html index c6411b2b..7b7c34bc 100644 --- a/overlord/src/app/account/account-list/account-list.component.html +++ b/overlord/src/app/account/account-list/account-list.component.html @@ -23,7 +23,9 @@ Name - star + @if (row.isStarred) { + star + } {{ row.name }} diff --git a/overlord/src/app/attendance/attendance.component.html b/overlord/src/app/attendance/attendance.component.html index 6e1c1fd5..ba41fd24 100644 --- a/overlord/src/app/attendance/attendance.component.html +++ b/overlord/src/app/attendance/attendance.component.html @@ -43,9 +43,11 @@ Status - - {{ at.name }} - + @for (at of attendanceTypes; track at) { + + {{ at.name }} + + } @@ -55,19 +57,20 @@ Prints {{ row.prints }} - new_releases + @if (!form.controls.attendances.controls[i].controls.attendanceType.pristine) { + new_releases + } - - {{ row.hoursWorked }} - + @if (row.hoursWorked.length) { + + {{ row.hoursWorked }} + + } diff --git a/overlord/src/app/attendance/attendance.component.ts b/overlord/src/app/attendance/attendance.component.ts index 640e9f24..37260427 100644 --- a/overlord/src/app/attendance/attendance.component.ts +++ b/overlord/src/app/attendance/attendance.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { FormArray, FormControl, FormGroup } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { BehaviorSubject } from 'rxjs'; import { AuthService } from '../auth/auth.service'; diff --git a/overlord/src/app/auth/login/login.component.html b/overlord/src/app/auth/login/login.component.html index 533beb85..050eb444 100644 --- a/overlord/src/app/auth/login/login.component.html +++ b/overlord/src/app/auth/login/login.component.html @@ -18,13 +18,15 @@ -

Client ID: {{ clientId }}

-
- - Otp - - -
+ @if (showOtp) { +

Client ID: {{ clientId }}

+
+ + Otp + + +
+ } diff --git a/overlord/src/app/balance-sheet/balance-sheet.component.ts b/overlord/src/app/balance-sheet/balance-sheet.component.ts index 0dc42fd4..832e0026 100644 --- a/overlord/src/app/balance-sheet/balance-sheet.component.ts +++ b/overlord/src/app/balance-sheet/balance-sheet.component.ts @@ -3,7 +3,7 @@ import { FormControl, FormGroup } from '@angular/forms'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { BalanceSheet } from './balance-sheet'; import { BalanceSheetDataSource } from './balance-sheet-datasource'; diff --git a/overlord/src/app/batch-integrity-report/batch-integrity-report.component.html b/overlord/src/app/batch-integrity-report/batch-integrity-report.component.html index e7b2d18a..78fafaf4 100644 --- a/overlord/src/app/batch-integrity-report/batch-integrity-report.component.html +++ b/overlord/src/app/batch-integrity-report/batch-integrity-report.component.html @@ -8,7 +8,7 @@ Batch - {{ row.product }} dated {{ row.date }} @ {{ row.price | currency: 'INR' }} is showing + {{ row.product }} dated {{ row.date }} @ {{ row.price | currency: 'INR' }} is showing {{ row.showing }} instead of {{ row.actual }} @@ -18,10 +18,12 @@ Details
    -
  • - {{ detail.type }} on {{ detail.date }} of {{ detail.quantity }} @ - {{ detail.price | currency: 'INR' }} -
  • + @for (detail of row.details; track detail) { +
  • + {{ detail.type }} on {{ detail.date }} of {{ detail.quantity }} @ + {{ detail.price | currency: 'INR' }} +
  • + }
diff --git a/overlord/src/app/cash-flow/cash-flow.component.ts b/overlord/src/app/cash-flow/cash-flow.component.ts index 3ad12d6e..cc8d17ec 100644 --- a/overlord/src/app/cash-flow/cash-flow.component.ts +++ b/overlord/src/app/cash-flow/cash-flow.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { CashFlow } from './cash-flow'; import { CashFlowDataSource } from './cash-flow-datasource'; diff --git a/overlord/src/app/client/client-list/client-list.component.html b/overlord/src/app/client/client-list/client-list.component.html index dc4674a9..4019c2de 100644 --- a/overlord/src/app/client/client-list/client-list.component.html +++ b/overlord/src/app/client/client-list/client-list.component.html @@ -40,7 +40,7 @@ Last Login {{ row.lastUser }} @ {{ row.lastDate ? (row.lastDate | localTime) : 'Never' }}{{ row.lastUser }} @ {{ row.lastDate ? (row.lastDate | localTime) : 'Never' }} diff --git a/overlord/src/app/closing-stock/closing-stock.component.html b/overlord/src/app/closing-stock/closing-stock.component.html index 9bc0fcf0..bd98009b 100644 --- a/overlord/src/app/closing-stock/closing-stock.component.html +++ b/overlord/src/app/closing-stock/closing-stock.component.html @@ -2,9 +2,11 @@ Closing Stock - + @if (dataSource.data.length) { + + } @@ -13,9 +15,11 @@ Department - - {{ at.name }} - + @for (at of costCentres; track at) { + + {{ at.name }} + + } @@ -81,9 +85,11 @@ name="costCentre" (selectionChange)="updateDepartment($event.value, row)" > - - {{ at.name }} - + @for (at of costCentres; track at) { + + {{ at.name }} + + } @@ -111,16 +117,11 @@ - - + @if (canDelete()) { + + + } diff --git a/overlord/src/app/closing-stock/closing-stock.component.ts b/overlord/src/app/closing-stock/closing-stock.component.ts index 82fb935d..ae746133 100644 --- a/overlord/src/app/closing-stock/closing-stock.component.ts +++ b/overlord/src/app/closing-stock/closing-stock.component.ts @@ -5,7 +5,7 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatSelectChange } from '@angular/material/select'; import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { AuthService } from '../auth/auth.service'; import { CostCentre } from '../core/cost-centre'; diff --git a/overlord/src/app/core/nav-bar/nav-bar.component.html b/overlord/src/app/core/nav-bar/nav-bar.component.html index 7bbacd6a..1b794a5f 100644 --- a/overlord/src/app/core/nav-bar/nav-bar.component.html +++ b/overlord/src/app/core/nav-bar/nav-bar.component.html @@ -69,13 +69,17 @@ Clients Settings - - - account_box - Login + @if ((auth.currentUser | async)?.name; as name) { + + } + @if ((auth.currentUser | async) === null) { + + account_box + Login + }
diff --git a/overlord/src/app/daybook/daybook.component.ts b/overlord/src/app/daybook/daybook.component.ts index 29f45eae..616da9ae 100644 --- a/overlord/src/app/daybook/daybook.component.ts +++ b/overlord/src/app/daybook/daybook.component.ts @@ -3,7 +3,7 @@ import { FormControl, FormGroup } from '@angular/forms'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { Daybook } from './daybook'; import { DaybookDataSource } from './daybook-datasource'; diff --git a/overlord/src/app/employee-attendance/employee-attendance.component.html b/overlord/src/app/employee-attendance/employee-attendance.component.html index e78c5e6b..51ba2f7f 100644 --- a/overlord/src/app/employee-attendance/employee-attendance.component.html +++ b/overlord/src/app/employee-attendance/employee-attendance.component.html @@ -47,7 +47,9 @@ [displayWith]="displayFn" (optionSelected)="selected($event)" > - {{ employee.name }} + @for (employee of employees | async; track employee) { + {{ employee.name }} + } @@ -64,9 +66,11 @@ Status - - {{ at.name }} - + @for (at of attendanceTypes; track at) { + + {{ at.name }} + + } @@ -76,19 +80,20 @@ Prints {{ row.prints }} - new_releases + @if (!form.controls.attendances.controls[i].controls.attendanceType.pristine) { + new_releases + } - - {{ row.hoursWorked }} - + @if (row.hoursWorked.length) { + + {{ row.hoursWorked }} + + } diff --git a/overlord/src/app/employee-attendance/employee-attendance.component.ts b/overlord/src/app/employee-attendance/employee-attendance.component.ts index ec4a9fe1..2b561fd9 100644 --- a/overlord/src/app/employee-attendance/employee-attendance.component.ts +++ b/overlord/src/app/employee-attendance/employee-attendance.component.ts @@ -3,7 +3,7 @@ import { FormArray, FormControl, FormGroup } from '@angular/forms'; import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { BehaviorSubject, Observable, of as observableOf } from 'rxjs'; import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'; diff --git a/overlord/src/app/employee-benefits/employee-benefits.component.html b/overlord/src/app/employee-benefits/employee-benefits.component.html index 450ffc84..b90f268e 100644 --- a/overlord/src/app/employee-benefits/employee-benefits.component.html +++ b/overlord/src/app/employee-benefits/employee-benefits.component.html @@ -29,7 +29,9 @@ [displayWith]="displayFn" (optionSelected)="employeeSelected($event)" > - {{ employee.name }} + @for (employee of employees | async; track employee) { + {{ employee.name }} + } @@ -117,21 +119,18 @@ - - + @if (voucher.id) { + + + }
- - Created on {{ voucher.creationDate | localTime }} and Last Edited on - {{ voucher.lastEditDate | localTime }} by {{ voucher.user.name }}. {{ voucher.poster ? 'Posted by ' + voucher.poster : '' }} - + @if (voucher.id) { + + Created on {{ voucher.creationDate | localTime }} and Last Edited on + {{ voucher.lastEditDate | localTime }} by {{ voucher.user.name }}. {{ voucher.poster ? 'Posted by ' + voucher.poster : '' }} + + } diff --git a/overlord/src/app/employee-benefits/employee-benefits.component.ts b/overlord/src/app/employee-benefits/employee-benefits.component.ts index aff95edb..12a962ea 100644 --- a/overlord/src/app/employee-benefits/employee-benefits.component.ts +++ b/overlord/src/app/employee-benefits/employee-benefits.component.ts @@ -3,7 +3,7 @@ import { FormControl, FormGroup } from '@angular/forms'; import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { BehaviorSubject, Observable, of as observableOf } from 'rxjs'; import { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators'; diff --git a/overlord/src/app/employee-functions/employee-functions.component.ts b/overlord/src/app/employee-functions/employee-functions.component.ts index 374662e5..d4171521 100644 --- a/overlord/src/app/employee-functions/employee-functions.component.ts +++ b/overlord/src/app/employee-functions/employee-functions.component.ts @@ -1,7 +1,7 @@ import { Component } from '@angular/core'; import { FormControl, FormGroup } from '@angular/forms'; import { MatDatepicker } from '@angular/material/datepicker'; -import * as moment from 'moment'; +import moment from 'moment'; import { Moment } from 'moment'; import { ToasterService } from '../core/toaster.service'; diff --git a/overlord/src/app/employee/employee-detail/employee-detail.component.html b/overlord/src/app/employee/employee-detail/employee-detail.component.html index 5a04edb9..6cadce48 100644 --- a/overlord/src/app/employee/employee-detail/employee-detail.component.html +++ b/overlord/src/app/employee/employee-detail/employee-detail.component.html @@ -46,9 +46,11 @@ Cost Centre - - {{ cs.name }} - + @for (cs of costCentres; track cs) { + + {{ cs.name }} + + } @@ -64,22 +66,26 @@ - - Leaving Date - - - - + @if (!item.isActive) { + + Leaving Date + + + + + } - + @if (!!item.id) { + + } diff --git a/overlord/src/app/employee/employee-detail/employee-detail.component.ts b/overlord/src/app/employee/employee-detail/employee-detail.component.ts index 8e105bf2..9bd4a804 100644 --- a/overlord/src/app/employee/employee-detail/employee-detail.component.ts +++ b/overlord/src/app/employee/employee-detail/employee-detail.component.ts @@ -2,7 +2,7 @@ import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from '@angula import { FormControl, FormGroup } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { CostCentre } from '../../core/cost-centre'; import { ToasterService } from '../../core/toaster.service'; diff --git a/overlord/src/app/employee/employee-list/employee-list.component.html b/overlord/src/app/employee/employee-list/employee-list.component.html index 7d2b3a0e..84a46401 100644 --- a/overlord/src/app/employee/employee-list/employee-list.component.html +++ b/overlord/src/app/employee/employee-list/employee-list.component.html @@ -2,9 +2,11 @@ Employees - + @if (dataSource.data.length) { + + } add_box Add @@ -32,7 +34,9 @@ Name - star + @if (row.isStarred) { + star + } {{ row.name }} diff --git a/overlord/src/app/entries/entries.component.html b/overlord/src/app/entries/entries.component.html index 4ea836ed..8b9c3085 100644 --- a/overlord/src/app/entries/entries.component.html +++ b/overlord/src/app/entries/entries.component.html @@ -64,7 +64,9 @@ Debit
    -
  • {{ item }}
  • + @for (item of row.debitNames; track item) { +
  • {{ item }}
  • + }
@@ -74,7 +76,9 @@ Credit
    -
  • {{ item }}
  • + @for (item of row.creditNames; track item) { +
  • {{ item }}
  • + }
diff --git a/overlord/src/app/entries/entries.component.ts b/overlord/src/app/entries/entries.component.ts index adff8aee..bbfbfd08 100644 --- a/overlord/src/app/entries/entries.component.ts +++ b/overlord/src/app/entries/entries.component.ts @@ -4,7 +4,7 @@ import { MatPaginator } from '@angular/material/paginator'; import { MatRadioChange } from '@angular/material/radio'; import { MatSort, SortDirection } from '@angular/material/sort'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { EntriesDatasource } from './entries-datasource'; import { Report } from './report'; diff --git a/overlord/src/app/incentive/incentive.component.html b/overlord/src/app/incentive/incentive.component.html index fd19181b..5878c41e 100644 --- a/overlord/src/app/incentive/incentive.component.html +++ b/overlord/src/app/incentive/incentive.component.html @@ -73,21 +73,18 @@ - - + @if (voucher.id) { + + + } - - Created on {{ voucher.creationDate | localTime }} and Last Edited on - {{ voucher.lastEditDate | localTime }} by {{ voucher.user.name }}. {{ voucher.poster ? 'Posted by ' + voucher.poster : '' }} - + @if (voucher.id) { + + Created on {{ voucher.creationDate | localTime }} and Last Edited on + {{ voucher.lastEditDate | localTime }} by {{ voucher.user.name }}. {{ voucher.poster ? 'Posted by ' + voucher.poster : '' }} + + } diff --git a/overlord/src/app/incentive/incentive.component.ts b/overlord/src/app/incentive/incentive.component.ts index 5c6c92b8..fefe46d9 100644 --- a/overlord/src/app/incentive/incentive.component.ts +++ b/overlord/src/app/incentive/incentive.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core'; import { FormArray, FormControl, FormGroup } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import * as moment from 'moment'; +import moment from 'moment'; import { BehaviorSubject } from 'rxjs'; import { map } from 'rxjs/operators'; diff --git a/overlord/src/app/issue/issue-dialog.component.html b/overlord/src/app/issue/issue-dialog.component.html index 18dcc5af..1050c5c3 100644 --- a/overlord/src/app/issue/issue-dialog.component.html +++ b/overlord/src/app/issue/issue-dialog.component.html @@ -18,7 +18,9 @@ [displayWith]="displayFn" (optionSelected)="batchSelected($event)" > - {{ batch.name }} + @for (batch of batches | async; track batch) { + {{ batch.name }} + } diff --git a/overlord/src/app/issue/issue.component.html b/overlord/src/app/issue/issue.component.html index 79481751..9e4987e4 100644 --- a/overlord/src/app/issue/issue.component.html +++ b/overlord/src/app/issue/issue.component.html @@ -20,16 +20,20 @@ - - {{ costCentre.name }} - + @for (costCentre of costCentres; track costCentre) { + + {{ costCentre.name }} + + } - - {{ costCentre.name }} - + @for (costCentre of costCentres; track costCentre) { + + {{ costCentre.name }} + + } @@ -56,7 +60,9 @@ [displayWith]="displayFn" (optionSelected)="batchSelected($event)" > - {{ batch.name }} + @for (batch of batches | async; track batch) { + {{ batch.name }} + } @@ -123,17 +129,19 @@ - - + @if (voucher.id) { + + + } - - Created on {{ voucher.creationDate | localTime }} and Last Edited on  {{ voucher.lastEditDate | localTime }} by  {{ voucher.user.name }}. {{ voucher.poster ? 'Posted by ' + voucher.poster : '' }} - + @if (voucher.id) { + + Created on {{ voucher.creationDate | localTime }} and Last Edited on  {{ voucher.lastEditDate | localTime }} by  {{ voucher.user.name }}. {{ voucher.poster ? 'Posted by ' + voucher.poster : '' }} + + } Other issues for the day diff --git a/overlord/src/app/issue/issue.component.ts b/overlord/src/app/issue/issue.component.ts index 93ef52a2..9e39f2af 100644 --- a/overlord/src/app/issue/issue.component.ts +++ b/overlord/src/app/issue/issue.component.ts @@ -5,7 +5,7 @@ import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; import { Hotkey, HotkeysService } from 'angular2-hotkeys'; import { round } from 'mathjs'; -import * as moment from 'moment'; +import moment from 'moment'; import { BehaviorSubject, Observable, of as observableOf } from 'rxjs'; import { debounceTime, distinctUntilChanged, map, switchMap } from 'rxjs/operators'; diff --git a/overlord/src/app/journal/journal-dialog.component.html b/overlord/src/app/journal/journal-dialog.component.html index ed06571e..ba1157d2 100644 --- a/overlord/src/app/journal/journal-dialog.component.html +++ b/overlord/src/app/journal/journal-dialog.component.html @@ -18,10 +18,12 @@ formControlName="account" autocomplete="off" /> - - Balance as on Date: {{ accBal.date | currency: 'INR' | accounting }} / Final balance: - {{ accBal.total | currency: 'INR' | accounting }} - + @if (accBal) { + + Balance as on Date: {{ accBal.date | currency: 'INR' | accounting }} / Final balance: + {{ accBal.total | currency: 'INR' | accounting }} + + } - {{ account.name }} + @for (account of accounts | async; track account) { + {{ account.name }} + } Amount diff --git a/overlord/src/app/journal/journal.component.html b/overlord/src/app/journal/journal.component.html index 5acf202c..fe5d6113 100644 --- a/overlord/src/app/journal/journal.component.html +++ b/overlord/src/app/journal/journal.component.html @@ -46,10 +46,12 @@ formControlName="account" autocomplete="off" /> - - Balance as on Date: {{ accBal.date | currency: 'INR' | accounting }} / Final balance: - {{ accBal.total | currency: 'INR' | accounting }} - + @if (accBal) { + + Balance as on Date: {{ accBal.date | currency: 'INR' | accounting }} / Final balance: + {{ accBal.total | currency: 'INR' | accounting }} + + } - {{ account.name }} + @for (account of accounts | async; track account) { + {{ account.name }} + } Amount @@ -107,12 +111,14 @@
-
- - -
+ @for (item of voucher.files; track item) { +
+ + +
+ }