cloud-ide-fees 0.0.44 → 0.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{cloud-ide-fees-cloud-ide-fees-DwymPnFD.mjs → cloud-ide-fees-cloud-ide-fees-DTu2UFxM.mjs} +38 -38
- package/fesm2022/{cloud-ide-fees-cloud-ide-fees-DwymPnFD.mjs.map → cloud-ide-fees-cloud-ide-fees-DTu2UFxM.mjs.map} +1 -1
- package/fesm2022/{cloud-ide-fees-discount-rule-manager.component-B2322yJN.mjs → cloud-ide-fees-discount-rule-manager.component-io1mU-5z.mjs} +2 -2
- package/fesm2022/{cloud-ide-fees-discount-rule-manager.component-B2322yJN.mjs.map → cloud-ide-fees-discount-rule-manager.component-io1mU-5z.mjs.map} +1 -1
- package/fesm2022/cloud-ide-fees.mjs +1 -1
- package/package.json +1 -1
|
@@ -8,7 +8,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
|
8
8
|
import { ConfirmationService, NotificationService, CideIconComponent, CideEleButtonComponent, CideEleDataGridComponent, CideEleDropdownComponent, CideInputComponent, CideSelectComponent, CideTextareaComponent } from 'cloud-ide-element';
|
|
9
9
|
import { MFeeDiscountRule, MFeeDiscountRuleInsertUpdatePayload, MFeeDiscountRuleToggleStatusPayload, MFeeDiscountRuleDeletePayload } from 'cloud-ide-lms-model';
|
|
10
10
|
import { AppStateHelperService, RightsService, CideLytSharedWrapperComponent } from 'cloud-ide-layout';
|
|
11
|
-
import { C as CideFeeDiscountRuleService } from './cloud-ide-fees-cloud-ide-fees-
|
|
11
|
+
import { C as CideFeeDiscountRuleService } from './cloud-ide-fees-cloud-ide-fees-DTu2UFxM.mjs';
|
|
12
12
|
|
|
13
13
|
class DiscountRuleManagerComponent {
|
|
14
14
|
fb = inject(FormBuilder);
|
|
@@ -272,4 +272,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImpo
|
|
|
272
272
|
}], propDecorators: { statusRendererTemplate: [{ type: i0.ViewChild, args: ['statusRendererTemplate', { isSignal: true }] }], actionsDropdownRendererTemplate: [{ type: i0.ViewChild, args: ['actionsDropdownRendererTemplate', { isSignal: true }] }], discountValueRendererTemplate: [{ type: i0.ViewChild, args: ['discountValueRendererTemplate', { isSignal: true }] }], modeRendererTemplate: [{ type: i0.ViewChild, args: ['modeRendererTemplate', { isSignal: true }] }] } });
|
|
273
273
|
|
|
274
274
|
export { DiscountRuleManagerComponent };
|
|
275
|
-
//# sourceMappingURL=cloud-ide-fees-discount-rule-manager.component-
|
|
275
|
+
//# sourceMappingURL=cloud-ide-fees-discount-rule-manager.component-io1mU-5z.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-ide-fees-discount-rule-manager.component-B2322yJN.mjs","sources":["../../../projects/cloud-ide-fees/src/lib/collection/discount-management/components/discount-rule-manager/discount-rule-manager.component.ts","../../../projects/cloud-ide-fees/src/lib/collection/discount-management/components/discount-rule-manager/discount-rule-manager.component.html"],"sourcesContent":["import {\r\n Component,\r\n signal,\r\n computed,\r\n viewChild,\r\n TemplateRef,\r\n DestroyRef,\r\n inject,\r\n OnInit,\r\n type OnDestroy\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n CideEleDataGridComponent,\r\n CideIconComponent,\r\n CideEleButtonComponent,\r\n type GridConfiguration,\r\n type GridEvent,\r\n CideEleDropdownComponent,\r\n type DropdownItem,\r\n type TemplateContext,\r\n ConfirmationService,\r\n NotificationService,\r\n CideInputComponent,\r\n CideSelectComponent,\r\n CideTextareaComponent\r\n} from 'cloud-ide-element';\r\nimport {\r\n FeeDiscountRule,\r\n MFeeDiscountRule,\r\n MFeeDiscountRuleGetByIdPayload,\r\n MFeeDiscountRuleInsertUpdatePayload,\r\n MFeeDiscountRuleDeletePayload,\r\n MFeeDiscountRuleToggleStatusPayload\r\n} from 'cloud-ide-lms-model';\r\nimport { AppStateHelperService, CideLytSharedWrapperComponent, RightsService } from 'cloud-ide-layout';\r\nimport { CideFeeDiscountRuleService } from '../../services/discount-rule.service';\r\n\r\n@Component({\r\n selector: 'cide-discount-rule-manager',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CideIconComponent,\r\n CideEleButtonComponent,\r\n CideEleDataGridComponent,\r\n CideEleDropdownComponent,\r\n CideLytSharedWrapperComponent,\r\n CideInputComponent,\r\n CideSelectComponent,\r\n CideTextareaComponent\r\n ],\r\n templateUrl: './discount-rule-manager.component.html',\r\n styles: [`\r\n :host {\r\n @apply tw-w-full tw-h-full tw-flex tw-flex-col;\r\n }\r\n .rule-form-container {\r\n @apply tw-max-h-[80vh] tw-overflow-y-auto tw-p-2;\r\n }\r\n `]\r\n})\r\nexport class DiscountRuleManagerComponent implements OnInit, OnDestroy {\r\n private readonly fb = inject(FormBuilder);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly discountRuleService = inject(CideFeeDiscountRuleService);\r\n private readonly appState = inject(AppStateHelperService);\r\n private readonly confirmationService = inject(ConfirmationService);\r\n private readonly notificationService = inject(NotificationService);\r\n private readonly rightsService = inject(RightsService);\r\n\r\n // ViewChild templates for grid\r\n readonly statusRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('statusRendererTemplate');\r\n readonly actionsDropdownRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('actionsDropdownRendererTemplate');\r\n readonly discountValueRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('discountValueRendererTemplate');\r\n readonly modeRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('modeRendererTemplate');\r\n\r\n // State signals\r\n readonly discountRules = signal<FeeDiscountRule[]>([]);\r\n readonly loading = signal<boolean>(false);\r\n readonly showModal = signal<boolean>(false);\r\n readonly isEditing = signal<boolean>(false);\r\n readonly submitting = signal<boolean>(false);\r\n\r\n // Pagination and search\r\n readonly currentPage = signal<number>(1);\r\n readonly pageSize = signal<number>(10);\r\n readonly totalItems = signal<number>(0);\r\n readonly searchQuery = signal<string>('');\r\n\r\n readonly breadcrumbData = signal([\r\n { id: 'list', label: 'Discount Rules', icon: 'percent' }\r\n ]);\r\n\r\n // Rule Form\r\n ruleForm: FormGroup = this.fb.group({\r\n _id: [null],\r\n feedr_name: ['', Validators.required],\r\n feedr_code: ['', Validators.required],\r\n feedr_description: [''],\r\n feedr_discount_type: ['PERCENTAGE', Validators.required],\r\n feedr_discount_value: [0, [Validators.required, Validators.min(0)]],\r\n feedr_mode: ['MANUAL', Validators.required],\r\n feedr_status: ['ACTIVE'],\r\n feedr_priority: [1],\r\n feedr_approval_req: [false],\r\n feedr_stacking: ['STACKABLE'],\r\n feedr_criteria_json: ['']\r\n });\r\n\r\n // Configuration options\r\n readonly discountTypeOptions = signal([\r\n { value: 'PERCENTAGE', label: 'Percentage (%)' },\r\n { value: 'FIXED_AMOUNT', label: 'Fixed Amount (₹)' }\r\n ]);\r\n\r\n readonly modeOptions = signal([\r\n { value: 'MANUAL', label: 'Manual Selection' },\r\n { value: 'AUTOMATIC', label: 'Automatic Application' }\r\n ]);\r\n\r\n readonly stackingOptions = signal([\r\n { value: 'STACKABLE', label: 'Stackable' },\r\n { value: 'EXCLUSIVE', label: 'Exclusive (Only this)' },\r\n { value: 'MAX_OF', label: 'Max Of (Best for student)' }\r\n ]);\r\n\r\n readonly gridConfig = computed<GridConfiguration<FeeDiscountRule>>(() => ({\r\n id: 'discount-rule-grid',\r\n columns: [\r\n { key: 'feedr_code', header: 'Code', type: 'text', width: '120px', sortable: true },\r\n { key: 'feedr_name', header: 'Rule Name', type: 'text', width: 'auto', sortable: true },\r\n { key: 'discount_value', header: 'Value', type: 'custom', width: '120px', renderer: 'discountValueRenderer' },\r\n { key: 'feedr_mode', header: 'Mode', type: 'custom', width: '120px', renderer: 'modeRenderer' },\r\n { key: 'feedr_status', header: 'Status', type: 'custom', width: '120px', renderer: 'statusRenderer' },\r\n { key: 'actions', header: 'Actions', type: 'custom', width: '80px', renderer: 'actionsDropdownRenderer' }\r\n ],\r\n data: this.discountRules(),\r\n pagination: {\r\n enabled: true,\r\n pageSize: this.pageSize(),\r\n pageSizeOptions: [10, 25, 50, 100],\r\n showQuickJump: true,\r\n showPageInfo: true,\r\n showRefresh: true\r\n },\r\n search: {\r\n enabled: true,\r\n placeholder: 'Search rules...',\r\n searchableColumns: ['feedr_name', 'feedr_code', 'feedr_description']\r\n },\r\n loading: {\r\n showOverlay: this.loading(),\r\n useDefer: true,\r\n skeletonRows: 5\r\n },\r\n responsive: true\r\n }));\r\n\r\n ngOnInit(): void {\r\n this.rightsService.initializeRights('fee_discount_rule');\r\n this.loadDiscountRules();\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n loadDiscountRules(): void {\r\n this.loading.set(true);\r\n const payload = new MFeeDiscountRule({\r\n pageIndex: this.currentPage(),\r\n pageSize: this.pageSize(),\r\n query: this.searchQuery(),\r\n feedr_entity_id_syen: this.appState.activeEntity()?._id\r\n });\r\n\r\n this.discountRuleService.getDiscountRuleList(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.success) {\r\n this.discountRules.set(res.data || []);\r\n this.totalItems.set(res.total || 0);\r\n }\r\n this.loading.set(false);\r\n },\r\n error: () => this.loading.set(false)\r\n });\r\n }\r\n\r\n onGridEvent(event: GridEvent<any>): void {\r\n if (event.type === 'pageChange') {\r\n const pageData = event.data as { pageIndex: number, pageSize: number };\r\n this.currentPage.set(pageData.pageIndex);\r\n this.pageSize.set(pageData.pageSize);\r\n this.loadDiscountRules();\r\n } else if (event.type === 'search') {\r\n this.searchQuery.set(event.data as string);\r\n this.currentPage.set(1);\r\n this.loadDiscountRules();\r\n }\r\n }\r\n\r\n openCreateModal(): void {\r\n this.isEditing.set(false);\r\n this.ruleForm.reset({\r\n feedr_discount_type: 'PERCENTAGE',\r\n feedr_mode: 'MANUAL',\r\n feedr_status: 'ACTIVE',\r\n feedr_priority: 1,\r\n feedr_stacking: 'STACKABLE',\r\n feedr_approval_req: false\r\n });\r\n this.showModal.set(true);\r\n }\r\n\r\n editRule(rule: FeeDiscountRule): void {\r\n this.isEditing.set(true);\r\n this.ruleForm.patchValue(rule);\r\n this.showModal.set(true);\r\n }\r\n\r\n closeModal(): void {\r\n this.showModal.set(false);\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.ruleForm.invalid) return;\r\n\r\n this.submitting.set(true);\r\n const payload = new MFeeDiscountRuleInsertUpdatePayload(this.ruleForm.value);\r\n payload.feedr_entity_id_syen = this.appState.activeEntity()?._id;\r\n\r\n this.discountRuleService.saveDiscountRule(payload)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.success) {\r\n this.notificationService.success('Discount rule saved successfully');\r\n this.showModal.set(false);\r\n this.loadDiscountRules();\r\n }\r\n this.submitting.set(false);\r\n },\r\n error: () => this.submitting.set(false)\r\n });\r\n }\r\n\r\n toggleStatus(rule: FeeDiscountRule): void {\r\n const payload = new MFeeDiscountRuleToggleStatusPayload({ feedr_id: rule._id });\r\n this.discountRuleService.toggleDiscountRuleStatus(payload).subscribe((res: any) => {\r\n if (res.success) {\r\n this.notificationService.success('Status updated');\r\n this.loadDiscountRules();\r\n }\r\n });\r\n }\r\n\r\n deleteRule(rule: FeeDiscountRule): void {\r\n this.confirmationService.ask({\r\n title: 'Delete Rule',\r\n message: `Are you sure you want to delete \"${rule.feedr_name}\"?`,\r\n type: 'warning'\r\n }).then(confirmed => {\r\n if (confirmed) {\r\n const payload = new MFeeDiscountRuleDeletePayload({ feedr_id: rule._id });\r\n this.discountRuleService.deleteDiscountRule(payload).subscribe((res: any) => {\r\n if (res.success) {\r\n this.notificationService.success('Rule deleted');\r\n this.loadDiscountRules();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n getActionDropdownItems(rule: FeeDiscountRule): DropdownItem[] {\r\n const items: DropdownItem[] = [\r\n { id: 'edit', label: 'Edit', icon: 'edit' },\r\n { id: 'toggle', label: rule.feedr_status === 'ACTIVE' ? 'Deactivate' : 'Activate', icon: 'sync_alt' }\r\n ];\r\n\r\n // Only show sync for active automatic rules\r\n if (rule.feedr_status === 'ACTIVE' && rule.feedr_mode === 'AUTOMATIC') {\r\n items.push({ id: 'sync', label: 'Sync Rule', icon: 'sync' });\r\n }\r\n\r\n items.push({ id: 'delete', label: 'Delete', icon: 'delete', textColor: 'tw-text-red-600' });\r\n return items;\r\n }\r\n\r\n onDropdownItemClick(item: DropdownItem, rule: FeeDiscountRule): void {\r\n if (item.id === 'edit') this.editRule(rule);\r\n else if (item.id === 'toggle') this.toggleStatus(rule);\r\n else if (item.id === 'delete') this.deleteRule(rule);\r\n else if (item.id === 'sync') this.onSyncRule(rule);\r\n }\r\n\r\n onSyncRule(rule: FeeDiscountRule): void {\r\n if (!rule._id) return;\r\n\r\n this.confirmationService.ask({\r\n title: 'Sync Rule',\r\n message: `Do you want to sync \"${rule.feedr_name}\" with all existing UNPAID assignments? This will re-evaluate criteria and update amounts.`,\r\n type: 'info'\r\n }).then(confirmed => {\r\n if (confirmed) {\r\n this.notificationService.info('Syncing in progress...');\r\n this.discountRuleService.syncDiscountRule({ feedr_id: rule._id! })\r\n .subscribe((res: any) => {\r\n if (res.success) {\r\n this.notificationService.success(res.message || 'Sync completed successfully');\r\n } else {\r\n this.notificationService.error(res.message || 'Sync failed');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n templateRenderers = computed(() => ({\r\n statusRenderer: this.statusRendererTemplate(),\r\n actionsDropdownRenderer: this.actionsDropdownRendererTemplate(),\r\n discountValueRenderer: this.discountValueRendererTemplate(),\r\n modeRenderer: this.modeRendererTemplate()\r\n }));\r\n}\r\n","<cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"{ sypg_page_code: 'fee_discount_rule' }\"\r\n [breadcrumb_data]=\"breadcrumbData()\">\r\n\r\n <div class=\"tw-p-4 tw-flex tw-flex-col tw-gap-4 tw-h-[calc(100vh-140px)]\">\r\n <!-- Header Actions -->\r\n <div class=\"tw-flex tw-justify-between tw-items-center\">\r\n <h2 class=\"tw-text-lg tw-font-bold tw-text-gray-800\">Discount Rules</h2>\r\n <button cideEleButton variant=\"primary\" (click)=\"openCreateModal()\">\r\n <cide-ele-icon size=\"sm\">add</cide-ele-icon> Create New Rule\r\n </button>\r\n </div>\r\n\r\n <!-- Data Grid -->\r\n <div class=\"tw-bg-white tw-rounded-xl tw-border tw-border-gray-200 tw-overflow-hidden tw-flex-1\">\r\n <cide-ele-data-grid [config]=\"gridConfig()\" [templateRenderers]=\"templateRenderers()\"\r\n [serverSidePagination]=\"true\" [totalServerItems]=\"totalItems()\" [currentServerPage]=\"currentPage()\"\r\n [currentServerPageSize]=\"pageSize()\" (gridEvent)=\"onGridEvent($event)\">\r\n </cide-ele-data-grid>\r\n </div>\r\n </div>\r\n</cide-lyt-shared-wrapper>\r\n\r\n<!-- Status Renderer -->\r\n<ng-template #statusRendererTemplate let-row=\"row\">\r\n <span class=\"tw-px-2 tw-py-1 tw-rounded-full tw-text-[10px] tw-font-bold\"\r\n [ngClass]=\"row.feedr_status === 'ACTIVE' ? 'tw-bg-green-100 tw-text-green-700' : 'tw-bg-gray-100 tw-text-gray-600'\">\r\n {{ row.feedr_status }}\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Discount Value Renderer -->\r\n<ng-template #discountValueRendererTemplate let-row=\"row\">\r\n <div class=\"tw-font-bold\"\r\n [ngClass]=\"row.feedr_discount_type === 'PERCENTAGE' ? 'tw-text-blue-600' : 'tw-text-green-600'\">\r\n {{ row.feedr_discount_type === 'PERCENTAGE' ? row.feedr_discount_value + '%' : '₹' + row.feedr_discount_value }}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Mode Renderer -->\r\n<ng-template #modeRendererTemplate let-row=\"row\">\r\n <div class=\"tw-text-xs tw-font-medium\">\r\n {{ row.feedr_mode === 'AUTOMATIC' ? '🚀 Automatic' : '⚙️ Manual' }}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Actions Dropdown -->\r\n<ng-template #actionsDropdownRendererTemplate let-row=\"row\">\r\n <cide-ele-dropdown [items]=\"getActionDropdownItems(row)\" (itemClick)=\"onDropdownItemClick($event, row)\">\r\n </cide-ele-dropdown>\r\n</ng-template>\r\n\r\n<!-- Create/Edit Modal -->\r\n@if (showModal()) {\r\n<div class=\"tw-fixed tw-inset-0 tw-bg-black/50 tw-flex tw-items-center tw-justify-center tw-z-[1000] tw-p-4\">\r\n <div class=\"tw-bg-white tw-rounded-2xl tw-shadow-2xl tw-w-full tw-max-w-2xl tw-overflow-hidden\">\r\n <!-- Modal Header -->\r\n <div class=\"tw-p-4 tw-border-b tw-border-gray-100 tw-flex tw-justify-between tw-items-center tw-bg-gray-50/50\">\r\n <h3 class=\"tw-text-base tw-font-bold tw-text-gray-800\">\r\n {{ isEditing() ? 'Edit' : 'Create' }} Discount Rule\r\n </h3>\r\n <button (click)=\"closeModal()\" class=\"tw-text-gray-400 hover:tw-text-gray-600\">\r\n <cide-ele-icon>close</cide-ele-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- Modal Body -->\r\n <div class=\"rule-form-container\">\r\n <form [formGroup]=\"ruleForm\" class=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-4 tw-p-2\">\r\n <cide-ele-input formControlName=\"feedr_name\" label=\"Rule Name\" placeholder=\"e.g., Sibling Discount\"\r\n size=\"sm\" class=\"tw-col-span-2\"></cide-ele-input>\r\n <cide-ele-input formControlName=\"feedr_code\" label=\"Rule Code\" placeholder=\"e.g., SIB-10\"\r\n size=\"sm\"></cide-ele-input>\r\n <cide-ele-select formControlName=\"feedr_mode\" label=\"Application Mode\" [options]=\"modeOptions()\"\r\n size=\"sm\"></cide-ele-select>\r\n\r\n <cide-ele-select formControlName=\"feedr_discount_type\" label=\"Discount Type\"\r\n [options]=\"discountTypeOptions()\" size=\"sm\"></cide-ele-select>\r\n <cide-ele-input formControlName=\"feedr_discount_value\" label=\"Value\" type=\"number\"\r\n size=\"sm\"></cide-ele-input>\r\n\r\n <cide-ele-select formControlName=\"feedr_stacking\" label=\"Stacking Logic\" [options]=\"stackingOptions()\"\r\n size=\"sm\"></cide-ele-select>\r\n <cide-ele-input formControlName=\"feedr_priority\" label=\"Priority\" type=\"number\"\r\n size=\"sm\"></cide-ele-input>\r\n\r\n <div\r\n class=\"tw-col-span-2 tw-p-3 tw-bg-blue-50 tw-rounded-lg tw-border tw-border-blue-100 tw-flex tw-items-center tw-gap-3\">\r\n <input type=\"checkbox\" formControlName=\"feedr_approval_req\" class=\"tw-w-4 tw-h-4\">\r\n <div class=\"tw-text-xs tw-text-blue-800\">\r\n <strong>Require Approval?</strong>\r\n <p>If checked, manual application by staff will need manager approval.</p>\r\n </div>\r\n </div>\r\n\r\n <cide-ele-textarea formControlName=\"feedr_description\" label=\"Description\"\r\n placeholder=\"Notes about this discount...\" [rows]=\"2\" size=\"sm\"\r\n class=\"tw-col-span-2\"></cide-ele-textarea>\r\n\r\n <div class=\"tw-col-span-2 tw-mt-2\">\r\n <div class=\"tw-flex tw-items-center tw-justify-between tw-mb-1\">\r\n <label class=\"tw-text-xs tw-font-bold tw-text-gray-600\">Criteria JSON (Advanced Logic)</label>\r\n <span class=\"tw-text-[10px] tw-text-blue-500 tw-italic\">JSON Array or Object</span>\r\n </div>\r\n <cide-ele-textarea formControlName=\"feedr_criteria_json\"\r\n placeholder='Example: {\"field\": \"admap_is_rte_scheme\", \"operator\": \"==\", \"value\": true}'\r\n [rows]=\"3\" size=\"sm\"></cide-ele-textarea>\r\n <p class=\"tw-text-[10px] tw-text-gray-400 tw-mt-1\">\r\n Use field names from student admission data. Operators: ==, !=, >, <, in, contains. </p>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <!-- Modal Footer -->\r\n <div class=\"tw-p-4 tw-bg-gray-50 tw-border-t tw-border-gray-100 tw-flex tw-justify-end tw-gap-3\">\r\n <button cideEleButton variant=\"ghost\" (click)=\"closeModal()\" [disabled]=\"submitting()\">Cancel</button>\r\n <button cideEleButton variant=\"primary\" (click)=\"onSubmit()\" [loading]=\"submitting()\"\r\n [disabled]=\"ruleForm.invalid\">\r\n {{ isEditing() ? 'Update' : 'Create' }} Rule\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n}"],"names":["i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cloud-ide-fees-discount-rule-manager.component-io1mU-5z.mjs","sources":["../../../projects/cloud-ide-fees/src/lib/collection/discount-management/components/discount-rule-manager/discount-rule-manager.component.ts","../../../projects/cloud-ide-fees/src/lib/collection/discount-management/components/discount-rule-manager/discount-rule-manager.component.html"],"sourcesContent":["import {\r\n Component,\r\n signal,\r\n computed,\r\n viewChild,\r\n TemplateRef,\r\n DestroyRef,\r\n inject,\r\n OnInit,\r\n type OnDestroy\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport {\r\n CideEleDataGridComponent,\r\n CideIconComponent,\r\n CideEleButtonComponent,\r\n type GridConfiguration,\r\n type GridEvent,\r\n CideEleDropdownComponent,\r\n type DropdownItem,\r\n type TemplateContext,\r\n ConfirmationService,\r\n NotificationService,\r\n CideInputComponent,\r\n CideSelectComponent,\r\n CideTextareaComponent\r\n} from 'cloud-ide-element';\r\nimport {\r\n FeeDiscountRule,\r\n MFeeDiscountRule,\r\n MFeeDiscountRuleGetByIdPayload,\r\n MFeeDiscountRuleInsertUpdatePayload,\r\n MFeeDiscountRuleDeletePayload,\r\n MFeeDiscountRuleToggleStatusPayload\r\n} from 'cloud-ide-lms-model';\r\nimport { AppStateHelperService, CideLytSharedWrapperComponent, RightsService } from 'cloud-ide-layout';\r\nimport { CideFeeDiscountRuleService } from '../../services/discount-rule.service';\r\n\r\n@Component({\r\n selector: 'cide-discount-rule-manager',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n CideIconComponent,\r\n CideEleButtonComponent,\r\n CideEleDataGridComponent,\r\n CideEleDropdownComponent,\r\n CideLytSharedWrapperComponent,\r\n CideInputComponent,\r\n CideSelectComponent,\r\n CideTextareaComponent\r\n ],\r\n templateUrl: './discount-rule-manager.component.html',\r\n styles: [`\r\n :host {\r\n @apply tw-w-full tw-h-full tw-flex tw-flex-col;\r\n }\r\n .rule-form-container {\r\n @apply tw-max-h-[80vh] tw-overflow-y-auto tw-p-2;\r\n }\r\n `]\r\n})\r\nexport class DiscountRuleManagerComponent implements OnInit, OnDestroy {\r\n private readonly fb = inject(FormBuilder);\r\n private readonly destroyRef = inject(DestroyRef);\r\n private readonly discountRuleService = inject(CideFeeDiscountRuleService);\r\n private readonly appState = inject(AppStateHelperService);\r\n private readonly confirmationService = inject(ConfirmationService);\r\n private readonly notificationService = inject(NotificationService);\r\n private readonly rightsService = inject(RightsService);\r\n\r\n // ViewChild templates for grid\r\n readonly statusRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('statusRendererTemplate');\r\n readonly actionsDropdownRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('actionsDropdownRendererTemplate');\r\n readonly discountValueRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('discountValueRendererTemplate');\r\n readonly modeRendererTemplate = viewChild.required<TemplateRef<TemplateContext>>('modeRendererTemplate');\r\n\r\n // State signals\r\n readonly discountRules = signal<FeeDiscountRule[]>([]);\r\n readonly loading = signal<boolean>(false);\r\n readonly showModal = signal<boolean>(false);\r\n readonly isEditing = signal<boolean>(false);\r\n readonly submitting = signal<boolean>(false);\r\n\r\n // Pagination and search\r\n readonly currentPage = signal<number>(1);\r\n readonly pageSize = signal<number>(10);\r\n readonly totalItems = signal<number>(0);\r\n readonly searchQuery = signal<string>('');\r\n\r\n readonly breadcrumbData = signal([\r\n { id: 'list', label: 'Discount Rules', icon: 'percent' }\r\n ]);\r\n\r\n // Rule Form\r\n ruleForm: FormGroup = this.fb.group({\r\n _id: [null],\r\n feedr_name: ['', Validators.required],\r\n feedr_code: ['', Validators.required],\r\n feedr_description: [''],\r\n feedr_discount_type: ['PERCENTAGE', Validators.required],\r\n feedr_discount_value: [0, [Validators.required, Validators.min(0)]],\r\n feedr_mode: ['MANUAL', Validators.required],\r\n feedr_status: ['ACTIVE'],\r\n feedr_priority: [1],\r\n feedr_approval_req: [false],\r\n feedr_stacking: ['STACKABLE'],\r\n feedr_criteria_json: ['']\r\n });\r\n\r\n // Configuration options\r\n readonly discountTypeOptions = signal([\r\n { value: 'PERCENTAGE', label: 'Percentage (%)' },\r\n { value: 'FIXED_AMOUNT', label: 'Fixed Amount (₹)' }\r\n ]);\r\n\r\n readonly modeOptions = signal([\r\n { value: 'MANUAL', label: 'Manual Selection' },\r\n { value: 'AUTOMATIC', label: 'Automatic Application' }\r\n ]);\r\n\r\n readonly stackingOptions = signal([\r\n { value: 'STACKABLE', label: 'Stackable' },\r\n { value: 'EXCLUSIVE', label: 'Exclusive (Only this)' },\r\n { value: 'MAX_OF', label: 'Max Of (Best for student)' }\r\n ]);\r\n\r\n readonly gridConfig = computed<GridConfiguration<FeeDiscountRule>>(() => ({\r\n id: 'discount-rule-grid',\r\n columns: [\r\n { key: 'feedr_code', header: 'Code', type: 'text', width: '120px', sortable: true },\r\n { key: 'feedr_name', header: 'Rule Name', type: 'text', width: 'auto', sortable: true },\r\n { key: 'discount_value', header: 'Value', type: 'custom', width: '120px', renderer: 'discountValueRenderer' },\r\n { key: 'feedr_mode', header: 'Mode', type: 'custom', width: '120px', renderer: 'modeRenderer' },\r\n { key: 'feedr_status', header: 'Status', type: 'custom', width: '120px', renderer: 'statusRenderer' },\r\n { key: 'actions', header: 'Actions', type: 'custom', width: '80px', renderer: 'actionsDropdownRenderer' }\r\n ],\r\n data: this.discountRules(),\r\n pagination: {\r\n enabled: true,\r\n pageSize: this.pageSize(),\r\n pageSizeOptions: [10, 25, 50, 100],\r\n showQuickJump: true,\r\n showPageInfo: true,\r\n showRefresh: true\r\n },\r\n search: {\r\n enabled: true,\r\n placeholder: 'Search rules...',\r\n searchableColumns: ['feedr_name', 'feedr_code', 'feedr_description']\r\n },\r\n loading: {\r\n showOverlay: this.loading(),\r\n useDefer: true,\r\n skeletonRows: 5\r\n },\r\n responsive: true\r\n }));\r\n\r\n ngOnInit(): void {\r\n this.rightsService.initializeRights('fee_discount_rule');\r\n this.loadDiscountRules();\r\n }\r\n\r\n ngOnDestroy(): void { }\r\n\r\n loadDiscountRules(): void {\r\n this.loading.set(true);\r\n const payload = new MFeeDiscountRule({\r\n pageIndex: this.currentPage(),\r\n pageSize: this.pageSize(),\r\n query: this.searchQuery(),\r\n feedr_entity_id_syen: this.appState.activeEntity()?._id\r\n });\r\n\r\n this.discountRuleService.getDiscountRuleList(payload)\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.success) {\r\n this.discountRules.set(res.data || []);\r\n this.totalItems.set(res.total || 0);\r\n }\r\n this.loading.set(false);\r\n },\r\n error: () => this.loading.set(false)\r\n });\r\n }\r\n\r\n onGridEvent(event: GridEvent<any>): void {\r\n if (event.type === 'pageChange') {\r\n const pageData = event.data as { pageIndex: number, pageSize: number };\r\n this.currentPage.set(pageData.pageIndex);\r\n this.pageSize.set(pageData.pageSize);\r\n this.loadDiscountRules();\r\n } else if (event.type === 'search') {\r\n this.searchQuery.set(event.data as string);\r\n this.currentPage.set(1);\r\n this.loadDiscountRules();\r\n }\r\n }\r\n\r\n openCreateModal(): void {\r\n this.isEditing.set(false);\r\n this.ruleForm.reset({\r\n feedr_discount_type: 'PERCENTAGE',\r\n feedr_mode: 'MANUAL',\r\n feedr_status: 'ACTIVE',\r\n feedr_priority: 1,\r\n feedr_stacking: 'STACKABLE',\r\n feedr_approval_req: false\r\n });\r\n this.showModal.set(true);\r\n }\r\n\r\n editRule(rule: FeeDiscountRule): void {\r\n this.isEditing.set(true);\r\n this.ruleForm.patchValue(rule);\r\n this.showModal.set(true);\r\n }\r\n\r\n closeModal(): void {\r\n this.showModal.set(false);\r\n }\r\n\r\n onSubmit(): void {\r\n if (this.ruleForm.invalid) return;\r\n\r\n this.submitting.set(true);\r\n const payload = new MFeeDiscountRuleInsertUpdatePayload(this.ruleForm.value);\r\n payload.feedr_entity_id_syen = this.appState.activeEntity()?._id;\r\n\r\n this.discountRuleService.saveDiscountRule(payload)\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res.success) {\r\n this.notificationService.success('Discount rule saved successfully');\r\n this.showModal.set(false);\r\n this.loadDiscountRules();\r\n }\r\n this.submitting.set(false);\r\n },\r\n error: () => this.submitting.set(false)\r\n });\r\n }\r\n\r\n toggleStatus(rule: FeeDiscountRule): void {\r\n const payload = new MFeeDiscountRuleToggleStatusPayload({ feedr_id: rule._id });\r\n this.discountRuleService.toggleDiscountRuleStatus(payload).subscribe((res: any) => {\r\n if (res.success) {\r\n this.notificationService.success('Status updated');\r\n this.loadDiscountRules();\r\n }\r\n });\r\n }\r\n\r\n deleteRule(rule: FeeDiscountRule): void {\r\n this.confirmationService.ask({\r\n title: 'Delete Rule',\r\n message: `Are you sure you want to delete \"${rule.feedr_name}\"?`,\r\n type: 'warning'\r\n }).then(confirmed => {\r\n if (confirmed) {\r\n const payload = new MFeeDiscountRuleDeletePayload({ feedr_id: rule._id });\r\n this.discountRuleService.deleteDiscountRule(payload).subscribe((res: any) => {\r\n if (res.success) {\r\n this.notificationService.success('Rule deleted');\r\n this.loadDiscountRules();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n getActionDropdownItems(rule: FeeDiscountRule): DropdownItem[] {\r\n const items: DropdownItem[] = [\r\n { id: 'edit', label: 'Edit', icon: 'edit' },\r\n { id: 'toggle', label: rule.feedr_status === 'ACTIVE' ? 'Deactivate' : 'Activate', icon: 'sync_alt' }\r\n ];\r\n\r\n // Only show sync for active automatic rules\r\n if (rule.feedr_status === 'ACTIVE' && rule.feedr_mode === 'AUTOMATIC') {\r\n items.push({ id: 'sync', label: 'Sync Rule', icon: 'sync' });\r\n }\r\n\r\n items.push({ id: 'delete', label: 'Delete', icon: 'delete', textColor: 'tw-text-red-600' });\r\n return items;\r\n }\r\n\r\n onDropdownItemClick(item: DropdownItem, rule: FeeDiscountRule): void {\r\n if (item.id === 'edit') this.editRule(rule);\r\n else if (item.id === 'toggle') this.toggleStatus(rule);\r\n else if (item.id === 'delete') this.deleteRule(rule);\r\n else if (item.id === 'sync') this.onSyncRule(rule);\r\n }\r\n\r\n onSyncRule(rule: FeeDiscountRule): void {\r\n if (!rule._id) return;\r\n\r\n this.confirmationService.ask({\r\n title: 'Sync Rule',\r\n message: `Do you want to sync \"${rule.feedr_name}\" with all existing UNPAID assignments? This will re-evaluate criteria and update amounts.`,\r\n type: 'info'\r\n }).then(confirmed => {\r\n if (confirmed) {\r\n this.notificationService.info('Syncing in progress...');\r\n this.discountRuleService.syncDiscountRule({ feedr_id: rule._id! })\r\n .subscribe((res: any) => {\r\n if (res.success) {\r\n this.notificationService.success(res.message || 'Sync completed successfully');\r\n } else {\r\n this.notificationService.error(res.message || 'Sync failed');\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n templateRenderers = computed(() => ({\r\n statusRenderer: this.statusRendererTemplate(),\r\n actionsDropdownRenderer: this.actionsDropdownRendererTemplate(),\r\n discountValueRenderer: this.discountValueRendererTemplate(),\r\n modeRenderer: this.modeRendererTemplate()\r\n }));\r\n}\r\n","<cide-lyt-shared-wrapper [shared_wrapper_setup_param]=\"{ sypg_page_code: 'fee_discount_rule' }\"\r\n [breadcrumb_data]=\"breadcrumbData()\">\r\n\r\n <div class=\"tw-p-4 tw-flex tw-flex-col tw-gap-4 tw-h-[calc(100vh-140px)]\">\r\n <!-- Header Actions -->\r\n <div class=\"tw-flex tw-justify-between tw-items-center\">\r\n <h2 class=\"tw-text-lg tw-font-bold tw-text-gray-800\">Discount Rules</h2>\r\n <button cideEleButton variant=\"primary\" (click)=\"openCreateModal()\">\r\n <cide-ele-icon size=\"sm\">add</cide-ele-icon> Create New Rule\r\n </button>\r\n </div>\r\n\r\n <!-- Data Grid -->\r\n <div class=\"tw-bg-white tw-rounded-xl tw-border tw-border-gray-200 tw-overflow-hidden tw-flex-1\">\r\n <cide-ele-data-grid [config]=\"gridConfig()\" [templateRenderers]=\"templateRenderers()\"\r\n [serverSidePagination]=\"true\" [totalServerItems]=\"totalItems()\" [currentServerPage]=\"currentPage()\"\r\n [currentServerPageSize]=\"pageSize()\" (gridEvent)=\"onGridEvent($event)\">\r\n </cide-ele-data-grid>\r\n </div>\r\n </div>\r\n</cide-lyt-shared-wrapper>\r\n\r\n<!-- Status Renderer -->\r\n<ng-template #statusRendererTemplate let-row=\"row\">\r\n <span class=\"tw-px-2 tw-py-1 tw-rounded-full tw-text-[10px] tw-font-bold\"\r\n [ngClass]=\"row.feedr_status === 'ACTIVE' ? 'tw-bg-green-100 tw-text-green-700' : 'tw-bg-gray-100 tw-text-gray-600'\">\r\n {{ row.feedr_status }}\r\n </span>\r\n</ng-template>\r\n\r\n<!-- Discount Value Renderer -->\r\n<ng-template #discountValueRendererTemplate let-row=\"row\">\r\n <div class=\"tw-font-bold\"\r\n [ngClass]=\"row.feedr_discount_type === 'PERCENTAGE' ? 'tw-text-blue-600' : 'tw-text-green-600'\">\r\n {{ row.feedr_discount_type === 'PERCENTAGE' ? row.feedr_discount_value + '%' : '₹' + row.feedr_discount_value }}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Mode Renderer -->\r\n<ng-template #modeRendererTemplate let-row=\"row\">\r\n <div class=\"tw-text-xs tw-font-medium\">\r\n {{ row.feedr_mode === 'AUTOMATIC' ? '🚀 Automatic' : '⚙️ Manual' }}\r\n </div>\r\n</ng-template>\r\n\r\n<!-- Actions Dropdown -->\r\n<ng-template #actionsDropdownRendererTemplate let-row=\"row\">\r\n <cide-ele-dropdown [items]=\"getActionDropdownItems(row)\" (itemClick)=\"onDropdownItemClick($event, row)\">\r\n </cide-ele-dropdown>\r\n</ng-template>\r\n\r\n<!-- Create/Edit Modal -->\r\n@if (showModal()) {\r\n<div class=\"tw-fixed tw-inset-0 tw-bg-black/50 tw-flex tw-items-center tw-justify-center tw-z-[1000] tw-p-4\">\r\n <div class=\"tw-bg-white tw-rounded-2xl tw-shadow-2xl tw-w-full tw-max-w-2xl tw-overflow-hidden\">\r\n <!-- Modal Header -->\r\n <div class=\"tw-p-4 tw-border-b tw-border-gray-100 tw-flex tw-justify-between tw-items-center tw-bg-gray-50/50\">\r\n <h3 class=\"tw-text-base tw-font-bold tw-text-gray-800\">\r\n {{ isEditing() ? 'Edit' : 'Create' }} Discount Rule\r\n </h3>\r\n <button (click)=\"closeModal()\" class=\"tw-text-gray-400 hover:tw-text-gray-600\">\r\n <cide-ele-icon>close</cide-ele-icon>\r\n </button>\r\n </div>\r\n\r\n <!-- Modal Body -->\r\n <div class=\"rule-form-container\">\r\n <form [formGroup]=\"ruleForm\" class=\"tw-grid tw-grid-cols-1 md:tw-grid-cols-2 tw-gap-4 tw-p-2\">\r\n <cide-ele-input formControlName=\"feedr_name\" label=\"Rule Name\" placeholder=\"e.g., Sibling Discount\"\r\n size=\"sm\" class=\"tw-col-span-2\"></cide-ele-input>\r\n <cide-ele-input formControlName=\"feedr_code\" label=\"Rule Code\" placeholder=\"e.g., SIB-10\"\r\n size=\"sm\"></cide-ele-input>\r\n <cide-ele-select formControlName=\"feedr_mode\" label=\"Application Mode\" [options]=\"modeOptions()\"\r\n size=\"sm\"></cide-ele-select>\r\n\r\n <cide-ele-select formControlName=\"feedr_discount_type\" label=\"Discount Type\"\r\n [options]=\"discountTypeOptions()\" size=\"sm\"></cide-ele-select>\r\n <cide-ele-input formControlName=\"feedr_discount_value\" label=\"Value\" type=\"number\"\r\n size=\"sm\"></cide-ele-input>\r\n\r\n <cide-ele-select formControlName=\"feedr_stacking\" label=\"Stacking Logic\" [options]=\"stackingOptions()\"\r\n size=\"sm\"></cide-ele-select>\r\n <cide-ele-input formControlName=\"feedr_priority\" label=\"Priority\" type=\"number\"\r\n size=\"sm\"></cide-ele-input>\r\n\r\n <div\r\n class=\"tw-col-span-2 tw-p-3 tw-bg-blue-50 tw-rounded-lg tw-border tw-border-blue-100 tw-flex tw-items-center tw-gap-3\">\r\n <input type=\"checkbox\" formControlName=\"feedr_approval_req\" class=\"tw-w-4 tw-h-4\">\r\n <div class=\"tw-text-xs tw-text-blue-800\">\r\n <strong>Require Approval?</strong>\r\n <p>If checked, manual application by staff will need manager approval.</p>\r\n </div>\r\n </div>\r\n\r\n <cide-ele-textarea formControlName=\"feedr_description\" label=\"Description\"\r\n placeholder=\"Notes about this discount...\" [rows]=\"2\" size=\"sm\"\r\n class=\"tw-col-span-2\"></cide-ele-textarea>\r\n\r\n <div class=\"tw-col-span-2 tw-mt-2\">\r\n <div class=\"tw-flex tw-items-center tw-justify-between tw-mb-1\">\r\n <label class=\"tw-text-xs tw-font-bold tw-text-gray-600\">Criteria JSON (Advanced Logic)</label>\r\n <span class=\"tw-text-[10px] tw-text-blue-500 tw-italic\">JSON Array or Object</span>\r\n </div>\r\n <cide-ele-textarea formControlName=\"feedr_criteria_json\"\r\n placeholder='Example: {\"field\": \"admap_is_rte_scheme\", \"operator\": \"==\", \"value\": true}'\r\n [rows]=\"3\" size=\"sm\"></cide-ele-textarea>\r\n <p class=\"tw-text-[10px] tw-text-gray-400 tw-mt-1\">\r\n Use field names from student admission data. Operators: ==, !=, >, <, in, contains. </p>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n <!-- Modal Footer -->\r\n <div class=\"tw-p-4 tw-bg-gray-50 tw-border-t tw-border-gray-100 tw-flex tw-justify-end tw-gap-3\">\r\n <button cideEleButton variant=\"ghost\" (click)=\"closeModal()\" [disabled]=\"submitting()\">Cancel</button>\r\n <button cideEleButton variant=\"primary\" (click)=\"onSubmit()\" [loading]=\"submitting()\"\r\n [disabled]=\"ruleForm.invalid\">\r\n {{ isEditing() ? 'Update' : 'Create' }} Rule\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n}"],"names":["i2"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { d as CideFeeFeeAssignmentService, h as CideFeeFeePaymentService, b as CideFeeFeeStructureService, a as CloudIdeFees, l as CollectionReportComponent, D as DiscountRulesComponent, o as FeeApplicableFeesComponent, g as FeeAssignmentCreateComponent, e as FeeAssignmentListComponent, n as FeeDetailsViewerComponent, i as FeePaymentListComponent, j as FeePaymentProcessComponent, k as FeePaymentViewComponent, c as FeeStructureCreateComponent, F as FeeStructureListComponent, M as MyFeeStatementComponent, m as MyOnlinePaymentComponent, R as ReceiptTemplateService, S as StudentSelectionWrapperComponent, T as TemplateDesignerComponent, f as feesRoutes } from './cloud-ide-fees-cloud-ide-fees-
|
|
1
|
+
export { d as CideFeeFeeAssignmentService, h as CideFeeFeePaymentService, b as CideFeeFeeStructureService, a as CloudIdeFees, l as CollectionReportComponent, D as DiscountRulesComponent, o as FeeApplicableFeesComponent, g as FeeAssignmentCreateComponent, e as FeeAssignmentListComponent, n as FeeDetailsViewerComponent, i as FeePaymentListComponent, j as FeePaymentProcessComponent, k as FeePaymentViewComponent, c as FeeStructureCreateComponent, F as FeeStructureListComponent, M as MyFeeStatementComponent, m as MyOnlinePaymentComponent, R as ReceiptTemplateService, S as StudentSelectionWrapperComponent, T as TemplateDesignerComponent, f as feesRoutes } from './cloud-ide-fees-cloud-ide-fees-DTu2UFxM.mjs';
|
|
2
2
|
//# sourceMappingURL=cloud-ide-fees.mjs.map
|