feat: add discount value to vip code

pull/108/head
shancheas 2024-10-08 16:26:40 +07:00
parent 901c67137b
commit 198dcb4933
5 changed files with 41 additions and 8 deletions

View File

@ -0,0 +1,25 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class AddDiscountValueToVoucher1728377112337
implements MigrationInterface
{
name = 'AddDiscountValueToVoucher1728377112337';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "vip_codes" ADD "discount_value" numeric`,
);
await queryRunner.query(
`ALTER TABLE "vip_codes" ALTER COLUMN "discount" DROP NOT NULL`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "vip_codes" ALTER COLUMN "discount" SET NOT NULL`,
);
await queryRunner.query(
`ALTER TABLE "vip_codes" DROP COLUMN "discount_value"`,
);
}
}

View File

@ -51,12 +51,6 @@ export class PosTransactionHandler implements IEventHandler<ChangeDocEvent> {
}, },
}); });
const taxes = await this.taxService.getManyByOptions({
where: {
status: STATUS.ACTIVE,
},
});
const queryRunner = this.dataService const queryRunner = this.dataService
.getRepository() .getRepository()
.manager.connection.createQueryRunner(); .manager.connection.createQueryRunner();

View File

@ -12,11 +12,15 @@ export class VipCodeModel
@Column('varchar', { name: 'code' }) @Column('varchar', { name: 'code' })
code: string; code: string;
@Column('integer', { name: 'discount' }) @Column('integer', { name: 'discount', nullable: true })
discount: number; discount: number;
@Column('decimal', { nullable: true })
discount_value: number;
@Column('varchar', { name: 'vip_category_id' }) @Column('varchar', { name: 'vip_category_id' })
vip_category_id: string; vip_category_id: string;
@ManyToOne(() => VipCategoryModel, (model) => model.vip_codes, { @ManyToOne(() => VipCategoryModel, (model) => model.vip_codes, {
onDelete: 'CASCADE', onDelete: 'CASCADE',
onUpdate: 'CASCADE', onUpdate: 'CASCADE',

View File

@ -3,4 +3,5 @@ import { BaseEntity } from 'src/core/modules/domain/entities/base.entity';
export interface VipCodeEntity extends BaseEntity { export interface VipCodeEntity extends BaseEntity {
code: string; code: string;
discount: number; discount: number;
discount_value?: number;
} }

View File

@ -16,12 +16,21 @@ export class VipCodeDto extends BaseDto implements VipCodeEntity {
@ApiProperty({ @ApiProperty({
name: 'discount', name: 'discount',
type: Number, type: Number,
required: true, required: false,
example: 85, example: 85,
}) })
@IsNumber() @IsNumber()
discount: number; discount: number;
@ApiProperty({
name: 'discount_value',
type: Number,
required: false,
example: 25000,
})
@IsNumber()
discount_value: number;
@ApiProperty({ @ApiProperty({
name: 'vip_category', name: 'vip_category',
type: Object, type: Object,