add:product price
This commit is contained in:
parent
f1594ebd96
commit
77db83490f
|
@ -50,10 +50,9 @@ import configuration from './config/configuration';
|
|||
inject: [ConfigService],
|
||||
}),
|
||||
UsersModule,
|
||||
// TransactionModule,
|
||||
// ConfigurableModule,
|
||||
// ProductModule,
|
||||
AuthModule,
|
||||
TransactionModule,
|
||||
ConfigurableModule,
|
||||
ProductModule,
|
||||
],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
|
|
@ -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 {}
|
||||
|
|
|
@ -10,19 +10,19 @@ export class LocalStrategy extends PassportStrategy(Strategy) {
|
|||
super();
|
||||
}
|
||||
|
||||
async validate(
|
||||
username: string,
|
||||
password: string,
|
||||
): Promise<Omit<User, 'password'>> {
|
||||
const user = await this.authService.validateUser({
|
||||
username,
|
||||
password,
|
||||
});
|
||||
|
||||
if (!user) {
|
||||
throw new UnauthorizedException();
|
||||
}
|
||||
|
||||
return user;
|
||||
}
|
||||
// async validate(
|
||||
// username: string,
|
||||
// password: string,
|
||||
// ): Promise<Omit<User, 'password'>> {
|
||||
// const user = await this.authService.validateUser({
|
||||
// username,
|
||||
// password,
|
||||
// });
|
||||
//
|
||||
// if (!user) {
|
||||
// throw new UnauthorizedException();
|
||||
// }
|
||||
//
|
||||
// return user;
|
||||
// }
|
||||
}
|
||||
|
|
|
@ -10,6 +10,9 @@ export class CreateProductDto {
|
|||
@IsNotEmpty()
|
||||
status: string;
|
||||
|
||||
@IsNotEmpty()
|
||||
price: number;
|
||||
|
||||
@IsUUID()
|
||||
subCategoriesId: string;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -26,6 +26,9 @@ export class Product extends BaseModel{
|
|||
@Column()
|
||||
status: string;
|
||||
|
||||
@Column()
|
||||
price: number;
|
||||
|
||||
@ManyToOne(
|
||||
() => ProductSubCategories,
|
||||
(subCategories) => subCategories.category,
|
||||
|
|
|
@ -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<Product>,
|
||||
private productHistoryPrice: Repository<ProductHistoryPrice>,
|
||||
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);
|
||||
|
|
33
src/transaction/entities/coa-type.entity.ts
Normal file
33
src/transaction/entities/coa-type.entity.ts
Normal file
|
@ -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[];
|
||||
}
|
Loading…
Reference in New Issue
Block a user