diff --git a/src/app.module.ts b/src/app.module.ts index a3b7114..ce2cf6a 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -50,10 +50,9 @@ import configuration from './config/configuration'; inject: [ConfigService], }), UsersModule, - // TransactionModule, - // ConfigurableModule, - // ProductModule, - AuthModule, + TransactionModule, + ConfigurableModule, + ProductModule, ], }) export class AppModule {} diff --git a/src/auth/auth.module.ts b/src/auth/auth.module.ts index 7213c5d..75cbc4f 100644 --- a/src/auth/auth.module.ts +++ b/src/auth/auth.module.ts @@ -13,17 +13,9 @@ import { AuthController } from './auth.controller'; property: 'user', session: false, }), - JwtModule.register({ - secret: process.env.SECRETKEY, signOptions: { - expiresIn: process.env.EXPIRESIN, - }, - }), ], controllers: [AuthController], providers: [AuthService, JwtStrategy], - exports: [ - PassportModule, - JwtModule - ], + exports: [PassportModule, JwtModule], }) export class AuthModule {} diff --git a/src/auth/local.strategy.ts b/src/auth/local.strategy.ts index 9ab2e6f..83541f4 100644 --- a/src/auth/local.strategy.ts +++ b/src/auth/local.strategy.ts @@ -10,19 +10,19 @@ export class LocalStrategy extends PassportStrategy(Strategy) { super(); } - async validate( - username: string, - password: string, - ): Promise> { - const user = await this.authService.validateUser({ - username, - password, - }); - - if (!user) { - throw new UnauthorizedException(); - } - - return user; - } + // async validate( + // username: string, + // password: string, + // ): Promise> { + // const user = await this.authService.validateUser({ + // username, + // password, + // }); + // + // if (!user) { + // throw new UnauthorizedException(); + // } + // + // return user; + // } } diff --git a/src/product/dto/product/create-product.dto.ts b/src/product/dto/product/create-product.dto.ts index ed442af..4c93970 100644 --- a/src/product/dto/product/create-product.dto.ts +++ b/src/product/dto/product/create-product.dto.ts @@ -10,6 +10,9 @@ export class CreateProductDto { @IsNotEmpty() status: string; + @IsNotEmpty() + price: number; + @IsUUID() subCategoriesId: string; } diff --git a/src/product/entities/product-history-price.entity.ts b/src/product/entities/product-history-price.entity.ts index c744910..99a5aca 100644 --- a/src/product/entities/product-history-price.entity.ts +++ b/src/product/entities/product-history-price.entity.ts @@ -2,11 +2,6 @@ import { Entity, Column, PrimaryGeneratedColumn, - UpdateDateColumn, - DeleteDateColumn, - VersionColumn, - CreateDateColumn, - OneToMany, ManyToOne, } from 'typeorm'; import { Product } from './product.entity'; @@ -23,13 +18,16 @@ export class ProductHistoryPrice extends BaseModel { id: string; @ManyToOne(() => Product, (product) => product.id) - productId: string; + product: Product; + + @Column() + price: number; @Column({ type: 'date' }) - startDate: string; + startDate: Date; @Column({ type: 'date' }) - endDate: string; + endDate: Date; @Column('text') type: Type; diff --git a/src/product/entities/product.entity.ts b/src/product/entities/product.entity.ts index 78b9696..a139fe0 100644 --- a/src/product/entities/product.entity.ts +++ b/src/product/entities/product.entity.ts @@ -26,6 +26,9 @@ export class Product extends BaseModel{ @Column() status: string; + @Column() + price: number; + @ManyToOne( () => ProductSubCategories, (subCategories) => subCategories.category, diff --git a/src/product/product.service.ts b/src/product/product.service.ts index 4056074..d5df9b0 100644 --- a/src/product/product.service.ts +++ b/src/product/product.service.ts @@ -5,11 +5,18 @@ import { InjectRepository } from '@nestjs/typeorm'; import { CreateProductDto } from '../product/dto/product/create-product.dto'; import { ProductSubCategoriesService } from './product-sub-categories.service'; import { UpdateProductDto } from './dto/product/update-product.dto'; +import { ProductHistoryPrice } from './entities/product-history-price.entity'; + +enum Type { + NORMAL, + PROMO, +} export class ProductService { constructor( @InjectRepository(Product) private productRepository: Repository, + private productHistoryPrice: Repository, private productSubCategoriesService: ProductSubCategoriesService, ) {} @@ -23,6 +30,14 @@ export class ProductService { code: createProductDto.code, status: createProductDto.status, subCategories: subCategories, + price: createProductDto.price, + }); + + await this.productHistoryPrice.insert({ + product: result.identifiers[0], + type: Type.NORMAL, + startDate: new Date(), + endDate: null, }); return this.productRepository.findOneOrFail(result.identifiers[0].id); @@ -81,6 +96,7 @@ export class ProductService { code: updateProductDto.code, status: updateProductDto.status, subCategories: subCategories, + price: updateProductDto.price, }); return this.productRepository.findOneOrFail(id); diff --git a/src/transaction/entities/coa-type.entity.ts b/src/transaction/entities/coa-type.entity.ts new file mode 100644 index 0000000..d2a86ef --- /dev/null +++ b/src/transaction/entities/coa-type.entity.ts @@ -0,0 +1,33 @@ +import { + Entity, + Column, + PrimaryGeneratedColumn, + UpdateDateColumn, + DeleteDateColumn, + VersionColumn, + CreateDateColumn, + ManyToOne, + ManyToMany, + JoinTable, +} from 'typeorm'; +import { Product } from '../../product/entities/product.entity'; +import { User } from '../../users/entities/user.entity'; +import { BaseModel } from '../../config/basemodel.entity'; + +enum balanceType { + DEBIT, + CREDIT, +} + +@Entity() +export class CoaType extends BaseModel { + @Column() + name: string; + + @Column('text') + normalBalance: balanceType; + + @ManyToMany(() => User) + @JoinTable() + user: User[]; +}