Skip to content

Purchase Dashboard

Backlog fieldValue
Story IDAP-PUR-001
EpicPurchase
Story typeBusiness workflow
Review statusDraft - business analyst and business owner review required
Source evidenceAppsPortal.Apis controller, application command/query handlers, validators, domain entities, and matching MFE workflow where available
Last source review2026-07-10

User story

As purchasing managers, I want to monitor purchase activity and document statuses so that pending and exceptional work is visible.

Acceptance criteria

  1. Only authorized users can view or execute the feature's actions.
  2. Required business data, active dependencies, tenant/branch scope, and current document state are validated.
  3. Invalid requests return actionable validation errors without applying a partial change.
  4. Search, list, view, print, and export operations use the same authorized business scope.
  5. Material create, edit, status, approval, posting, reversal, and integration actions are auditable where applicable.
  6. Financial or stock effects are applied atomically and no more than once.

Business rules

Required

Authorized company/branch context is required.

Optional or conditional

Date/status ranges and widget limits are optional.

Action behavior

Widgets are read-only summaries and navigation; they do not post or approve documents.

Blocking rule or downstream effect

Counts/totals must use the same status and period definitions as lists/reports.

Frontend page coverage

The following UI coverage is sourced from the pulled MFE route configuration. A Module-level supporting artifact mapping is evidence of a reachable screen, but requires BA confirmation that it belongs to this story rather than a more specific feature story.

Route/pageComponentModeRoute permission/guardMapping confidenceSource
(module default)DashboardComponentDashboardNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/dashboard/dashboard.module.ts:10
(module default)LayoutPageComponentList/navigationNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/entry.routes.ts:6
(module default)VendorCategoryListComponentList/navigationPermission: AppPurchasePermissions.VendorCategory_List; Guards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:40
(module default)VendorDefinitionsListComponentList/navigationPermission: AppPurchasePermissions.Vendor_List; Guards: AuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:88
(module default)VendorOpeningBalanceListComponentList/navigationPermission: AppPurchasePermissions.VendorOpeningBalance_List,; Guards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase-transactions/purchase-transactions.module.ts:54
addAddVendorDefinitionsComponentAddPermission: AppPurchasePermissions.Vendor_Add; Guards: AuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:99
addCreateVendorCategoryComponentAddPermission: AppPurchasePermissions.VendorCategory_Add; Guards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:51
addVendorOpeningBalanceAddComponentAddPermission: AppPurchasePermissions.VendorOpeningBalance_Add,; Guards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase-transactions/purchase-transactions.module.ts:67
edit/:idEditVendorCategoryComponentEditPermission: AppPurchasePermissions.VendorCategory_Edit; Guards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:63
edit/:idEditVendorDefinitionsComponentEditPermission: AppPurchasePermissions.Vendor_Edit; Guards: AuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:111
edit/:idVendorOpeningBalanceEditComponentEditPermission: AppPurchasePermissions.VendorOpeningBalance_Edit,; Guards: PolicyAuthGuard, preventPostedGuardFeature token matchapps/purchase/src/app/remote-entry/purchase-transactions/purchase-transactions.module.ts:81
import/:errorTypeListFileComponentImportGuards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:146
masterdataLazy-loaded routeList/navigationNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/entry.routes.ts:18
purchase-invoice-reportPurchaseInvoiceReportComponentReport/printNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/report/report.module.ts:30
sequenceSequenceComponentSequenceNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:135
sequenceSequenceComponentSequenceNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/purchase-transactions/purchase-transactions.module.ts:166
transactionsLazy-loaded routeList/navigationNo route-level permission/guard found in source windowFeature token matchapps/purchase/src/app/remote-entry/entry.routes.ts:23
view/:idVendorOpeningBalanceViewComponentView/detailPermission: AppPurchasePermissions.VendorOpeningBalance_View,; Guards: PolicyAuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase-transactions/purchase-transactions.module.ts:96
view/:idViewVendorDefinitionsComponentView/detailPermission: AppPurchasePermissions.Vendor_View; Guards: AuthGuardFeature token matchapps/purchase/src/app/remote-entry/purchase/purchase.module.ts:123

Observed frontend fields and validation

ComponentControlObserved frontend ruleComponent source
AddVendorDefinitionsComponentbirthDateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcityIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcommercialIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactEmailVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactFaxVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactMobileVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentContactMobileCodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactPersonEmailVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactPersonMobileVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentContactPersonMobileCodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactPersonNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactPersonPhoneVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactPhoneVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcontactWebsiteVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcountryIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcreditLimitVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentcurrencyIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentdiscountAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentlatitudeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentlongitudeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentnameRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentnameArRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentpayableAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentpaymentTermIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentphotoVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentpricePolicyIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentpurchaseAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentpurchaseReturnAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentradiusVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentstateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentstreetVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponenttaxIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentvendorCategoryIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
AddVendorDefinitionsComponentVendorTagIdsVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/add-vendor-definitions/add-vendor-definitions.component.ts
CreateVendorCategoryComponentcodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentdiscountAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentmarketTypeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentnameRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentnameArRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentpayableAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentpaymentTermIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentpricePolicyIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentpurchaseAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
CreateVendorCategoryComponentpurchaseReturnAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/create-vendor-category/create-vendor-category.component.ts
EditVendorCategoryComponentcodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentdiscountAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentmarketTypeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentnameRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentnameArRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentpayableAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentpaymentTermIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentpricePolicyIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentpurchaseAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorCategoryComponentpurchaseReturnAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-category/edit-vendor-category/edit-vendor-category.component.ts
EditVendorDefinitionsComponentbirthDateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcityIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcommercialIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactEmailVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactFaxVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactMobileVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentContactMobileCodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactPersonEmailVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactPersonMobileVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentContactPersonMobileCodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactPersonNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactPersonPhoneVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactPhoneVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcontactWebsiteVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcountryIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcreditLimitVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentcurrencyIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentdiscountAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentlatitudeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentlongitudeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentnameRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentnameArRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentpayableAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentpaymentTermIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentpricePolicyIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentpurchaseAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentpurchaseReturnAccountIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentradiusVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentstateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentstreetVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponenttaxIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentvendorCategoryIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponentVendorTagIdsVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
PurchaseInvoiceReportFiltersComponentfromDateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
PurchaseInvoiceReportFiltersComponenthasDiscountVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
PurchaseInvoiceReportFiltersComponentpaymentTermIdsVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
PurchaseInvoiceReportFiltersComponentstatusesVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
PurchaseInvoiceReportFiltersComponenttoDateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
PurchaseInvoiceReportFiltersComponentvendorIdsVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
PurchaseInvoiceReportFiltersComponentwarehouseIdsVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/report/components/purchase-invoice-report-filters/purchase-invoice-report-filters.component.ts
VendorOpeningBalanceAddComponentbalanceRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentbalanceTypeRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentJournalLineRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentOpeningJournalRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentvendorIdRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceEditComponentbalanceRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentbalanceTypeRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentOpeningJournalRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentvendorIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
ViewVendorDefinitionsComponentlanguageService.arVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcityNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcommercialIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactEmailVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactFaxVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactMobileVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentContactMobileCodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactPersonEmailVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactPersonMobileVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentContactPersonMobileCodeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactPersonNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactPersonPhoneVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactPhoneVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcontactWebsiteVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcreditLimitVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentcurrencyNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentdiscountAccountDisplayVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentlatitudeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentlongitudeVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentnameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentnameArRequired in component validatorapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentpayableAccountDisplayVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentpaymentTermNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentpricePolicyNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentpurchaseAccountDisplayVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentpurchaseReturnAccountDisplayVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentradiusVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentstateVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentstreetVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponenttaxIdVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts
ViewVendorDefinitionsComponentvendorCategoryNameVisible control; optional or API-dependentapps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/view-vendor-definitions/view-vendor-definitions.component.ts

Observed frontend actions

ComponentClick action/handlerBusiness review requirementComponent source
EditVendorDefinitionsComponentcancelLeave or close without persisting; warn when the current form has unsaved changes and restore the prior list/filter context.apps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
EditVendorDefinitionsComponenteditVendorOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/edit-vendor-definitions/edit-vendor-definitions.component.ts
PurchaseInvoiceReportComponentonViewDataOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/purchase/src/app/remote-entry/report/pages/purchase-invoice-report/purchase-invoice-report.component.ts
PurchaseInvoiceReportComponentrouteToJournalentryViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/purchase/src/app/remote-entry/report/pages/purchase-invoice-report/purchase-invoice-report.component.ts
PurchaseInvoiceReportComponentrouteToStockOuttryViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/purchase/src/app/remote-entry/report/pages/purchase-invoice-report/purchase-invoice-report.component.ts
VendorCategoryListComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/purchase/src/app/remote-entry/purchase/pages/vendor-category/vendor-category-list/vendor-category-list.component.ts
VendorCategoryListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/purchase/src/app/remote-entry/purchase/pages/vendor-category/vendor-category-list/vendor-category-list.component.ts
VendorDefinitionsListComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/vendor-definitions-list/vendor-definitions-list.component.ts
VendorDefinitionsListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/vendor-definitions-list/vendor-definitions-list.component.ts
VendorDefinitionsListComponentonViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/purchase/src/app/remote-entry/purchase/pages/vendor-definitions/vendor-definitions-list/vendor-definitions-list.component.ts
VendorOpeningBalanceAddComponentaddLineAdd one initialized detail row without changing existing rows; apply defaults and line validators, preserve stable row identity, and exclude incomplete rows from Save/Post.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentopenDialogOpen the item/lookup/tracking dialog with the current warehouse, item, UOM, and remaining quantity context; accepted values must return to the correct line and cancel must not mutate it.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentopenDistributeDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceAddComponentremoveByFrontAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-add/vendor-opening-balance-add.component.ts
VendorOpeningBalanceEditComponentaddLineAdd one initialized detail row without changing existing rows; apply defaults and line validators, preserve stable row identity, and exclude incomplete rows from Save/Post.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentonSubmitValidate the concrete form and line collection, prevent duplicate submission, persist once, show API field/business errors in context, and navigate/refresh only after success.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentopenDialogOpen the item/lookup/tracking dialog with the current warehouse, item, UOM, and remaining quantity context; accepted values must return to the correct line and cancel must not mutate it.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentopenDistributeDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceEditComponentremoveByFrontAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-edit/vendor-opening-balance-edit.component.ts
VendorOpeningBalanceListComponentnavigateHelpPageComponentDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-list/vendor-opening-balance-list.component.ts
VendorOpeningBalanceListComponentonDeleteAvailable only in deletable states with Delete permission; identify the record in confirmation, call delete once, remove/refresh the list row on success, and retain the row with the API reason on failure.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-list/vendor-opening-balance-list.component.ts
VendorOpeningBalanceListComponentonEditOpen the identified editable record only with Edit permission; posted/locked records remain blocked by route or action state and list context must be recoverable on return.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-list/vendor-opening-balance-list.component.ts
VendorOpeningBalanceListComponentonPostAvailable only for a postable Draft and Post permission; confirm the document, prevent a second submission, call the posting API, and refresh status, journal/stock links, and row actions. Failure must keep the pre-post state.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-list/vendor-opening-balance-list.component.ts
VendorOpeningBalanceListComponentonUnPostAvailable only for a postable Draft and Post permission; confirm the document, prevent a second submission, call the posting API, and refresh status, journal/stock links, and row actions. Failure must keep the pre-post state.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-list/vendor-opening-balance-list.component.ts
VendorOpeningBalanceListComponentonViewOpen the authorized record in view mode with its status, totals, lines, source and generated-document links; handle deleted, forbidden, and missing records without exposing stale data.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-list/vendor-opening-balance-list.component.ts
VendorOpeningBalanceViewComponentopenDistributeDocument the enabled state, permission, input context, resulting API or navigation effect, success refresh, and concrete failure behavior for this handler.apps/purchase/src/app/remote-entry/purchase/pages/vendor-opening-balance/vendor-opening-balance-view/vendor-opening-balance-view.component.ts

Page-specific frontend acceptance criteria

  1. (module default) - Dashboard: Load authorized summary values consistently with source reports, support exposed date/branch filters, and handle empty/error states. Security observed: No route-level permission/guard found in source window
  2. (module default) - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: Permission: AppPurchasePermissions.Vendor_List; Guards: AuthGuard
  3. add - Add: Render permitted fields, required indicators, defaults, dependent lookups, validation, Save/Cancel, loading, success, and API-error states. Security observed: Permission: AppPurchasePermissions.VendorOpeningBalance_Add,; Guards: PolicyAuthGuard
  4. edit/:id - Edit: Load the identified record, enforce state/permission field locks, preserve concurrency identity, validate changes, and return without losing filters. Security observed: Permission: AppPurchasePermissions.VendorOpeningBalance_Edit,; Guards: PolicyAuthGuard, preventPostedGuard
  5. import/:errorType - Import: Provide template/download and upload flow, file/type/size validation, row-level preview/errors, confirmation, duplicate policy, and partial-failure rules. Security observed: Guards: PolicyAuthGuard
  6. masterdata - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  7. purchase-invoice-report - Report/print: Expose documented filters, validation, empty/loading/error states, authorized results, totals, drill-through, print, and export behavior where present. Security observed: No route-level permission/guard found in source window
  8. sequence - Sequence: Show current numbering scope and permit only authorized, valid sequence configuration without retroactively renumbering posted documents. Security observed: No route-level permission/guard found in source window
  9. transactions - List/navigation: Load an authorized paged/searchable list or navigation page; preserve filters/sort/paging and expose only permitted row and bulk actions. Security observed: No route-level permission/guard found in source window
  10. view/:id - View/detail: Load an authorized immutable/detail representation with status-aware actions, linked records, print/export where exposed, and not-found/forbidden handling. Security observed: Permission: AppPurchasePermissions.Vendor_View; Guards: AuthGuard

Internal Documentation — Microtec