fix(SPG_693) di hak akses pos pada bagian penjualan seharusnya ada checkbox pada kolom cancel dan ada hak akses reprint receipt

pull/43/head
Aswin Ashar Abdullah 2024-07-30 18:22:23 +07:00
parent c6be42299e
commit 197b3478ae
6 changed files with 94 additions and 10 deletions

View File

@ -62,6 +62,14 @@ export abstract class BaseDataService<Entity> {
await this.repository.delete(id);
}
async deleteByIds(
queryRunner: QueryRunner,
entityTarget: EntityTarget<Entity>,
ids: string[],
): Promise<void> {
await this.repository.delete(ids);
}
async deleteByOptions(
queryRunner: QueryRunner,
entityTarget: EntityTarget<Entity>,

View File

@ -1,3 +1,3 @@
export interface BaseCoreEntity {
id: string;
id?: string;
}

View File

@ -147,6 +147,7 @@ export const PrivilegePOSConstant = [
PrivilegeAction.CREATE,
PrivilegeAction.DELETE,
PrivilegeAction.EDIT,
PrivilegeAction.CANCEL,
],
index: 14,
},
@ -174,4 +175,10 @@ export const PrivilegePOSConstant = [
actions: [PrivilegeAction.CREATE],
index: 18,
},
{
menu: 'POS_DISCOUNT_CODE',
menu_label: 'Print Receipt',
actions: [PrivilegeAction.CREATE],
index: 18,
},
];

View File

@ -5,13 +5,13 @@ export interface UserPrivilegeConfigurationEntity extends BaseCoreEntity {
module_label: string;
menu: string;
menu_label: string;
sub_menu: string;
sub_menu_label: string;
view: boolean;
create: boolean;
edit: boolean;
delete: boolean;
cancel: boolean;
confirm: boolean;
index: number;
sub_menu?: string;
sub_menu_label?: string;
view?: boolean;
create?: boolean;
edit?: boolean;
delete?: boolean;
cancel?: boolean;
confirm?: boolean;
index?: number;
}

View File

@ -0,0 +1,66 @@
import { EventsHandler, IEventHandler } from '@nestjs/cqrs';
import { UserPrivilegeConfigUpdatedEvent } from '../../../entities/event/user-privilege-configuration-updated.event';
import { UserPrivilegeConfigurationService } from 'src/modules/user-related/user-privilege/data/service/user-privilege-configuration.service';
import { UserPrivilegeConfigurationHelper } from '../helpers/generate-user-privilege-configuration.helper';
import { UserPrivilegeConfigurationModel } from 'src/modules/user-related/user-privilege/data/models/user-privilege-configuration.model';
@EventsHandler(UserPrivilegeConfigUpdatedEvent)
export class UserPrivilegeConfigUpdateHandler
implements IEventHandler<UserPrivilegeConfigUpdatedEvent>
{
constructor(private dataService: UserPrivilegeConfigurationService) {}
async handle(event: UserPrivilegeConfigUpdatedEvent) {
const data = event.data.data;
console.log(data.user_privilege_id);
const configurations = await this.dataService.getManyByOptions({
where: {
user_privilege_id: data.user_privilege_id,
},
});
const configs = UserPrivilegeConfigurationHelper.createConfigurations();
const createdConfig = configs
.filter(
(base) =>
!configurations.some((data) => {
return base.menu_label == data.menu_label;
}),
)
.map((item) => {
return {
...item,
user_privilege_id: data.user_privilege_id,
};
});
const deletedConfig = configurations
.filter(
(base) =>
!configs.some((data) => {
return base.menu_label == data.menu_label;
}),
)
?.map((item) => item.id);
const queryRunner = this.dataService
.getRepository()
.manager.connection.createQueryRunner();
if (createdConfig.length) {
await this.dataService.createBatch(
queryRunner,
UserPrivilegeConfigurationModel,
createdConfig,
);
}
if (deletedConfig.length) {
await this.dataService.deleteByIds(
queryRunner,
UserPrivilegeConfigurationModel,
deletedConfig,
);
}
}
}

View File

@ -28,6 +28,7 @@ import { UserPrivilegeConfigurationDataOrchestrator } from './domain/usecases/us
import { IndexUserPrivilegeConfigurationManager } from './domain/usecases/user-privilege-configuration/managers/index-user-privilege-configuration.manager';
import { UserPrivilegeModels } from './constants';
import { MenuUserPrivilegeConfigurationManager } from './domain/usecases/user-privilege-configuration/managers/menu-user-privilege-configuration.manager';
import { UserPrivilegeConfigUpdateHandler } from './domain/usecases/user-privilege-configuration/handlers/update-user-privilege-configuration.helper';
@Module({
imports: [
@ -41,6 +42,8 @@ import { MenuUserPrivilegeConfigurationManager } from './domain/usecases/user-pr
UserPrivilegeConfigurationController,
],
providers: [
UserPrivilegeConfigUpdateHandler,
IndexUserPrivilegeManager,
DetailUserPrivilegeManager,
CreateUserPrivilegeManager,