add: progress transaction
This commit is contained in:
parent
77db83490f
commit
b1fa917576
|
@ -52,7 +52,7 @@ import configuration from './config/configuration';
|
|||
UsersModule,
|
||||
TransactionModule,
|
||||
ConfigurableModule,
|
||||
ProductModule,
|
||||
// ProductModule,
|
||||
],
|
||||
})
|
||||
export class AppModule {}
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
export class CreateTransactionDto {}
|
9
src/transaction/dto/distribute-transaction.dto.ts
Normal file
9
src/transaction/dto/distribute-transaction.dto.ts
Normal file
|
@ -0,0 +1,9 @@
|
|||
import { IsNotEmpty, IsUUID } from 'class-validator';
|
||||
|
||||
export class DistributeTransactionDto {
|
||||
@IsNotEmpty()
|
||||
amount: number;
|
||||
|
||||
@IsNotEmpty()
|
||||
destination: string;
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import { PartialType } from '@nestjs/mapped-types';
|
||||
import { CreateTransactionDto } from './create-transaction.dto';
|
||||
import { DistributeTransactionDto } from './distribute-transaction.dto';
|
||||
|
||||
export class UpdateTransactionDto extends PartialType(CreateTransactionDto) {}
|
||||
export class UpdateTransactionDto extends PartialType(DistributeTransactionDto) {}
|
||||
|
|
|
@ -5,13 +5,15 @@ import {
|
|||
UpdateDateColumn,
|
||||
DeleteDateColumn,
|
||||
VersionColumn,
|
||||
CreateDateColumn, ManyToOne, ManyToMany, JoinTable,
|
||||
CreateDateColumn, ManyToOne, ManyToMany, JoinTable, OneToOne,
|
||||
} from 'typeorm';
|
||||
import { Product } from '../../product/entities/product.entity';
|
||||
import { User } from '../../users/entities/user.entity';
|
||||
import { BaseModel } from '../../config/basemodel.entity';
|
||||
import { ProductCategories } from '../../product/entities/product-category.entity';
|
||||
import { COA } from './coa.entity';
|
||||
import { Transactions } from './transactions.entity';
|
||||
import { TransactionType } from './transaction-type.entity';
|
||||
|
||||
enum type {
|
||||
SYSTEM_BANk,
|
||||
|
@ -31,6 +33,12 @@ export class TransactionJournal extends BaseModel {
|
|||
@Column()
|
||||
amount: number;
|
||||
|
||||
@OneToOne(() => Transactions, (trans) => trans.id)
|
||||
transaction: Transactions;
|
||||
|
||||
@ManyToOne(() => COA, (coa) => coa.id)
|
||||
coa: COA;
|
||||
|
||||
@ManyToOne(() => TransactionType, (transType) => transType.id)
|
||||
transactionType: TransactionType;
|
||||
}
|
23
src/transaction/entities/transaction-type.entity.ts
Normal file
23
src/transaction/entities/transaction-type.entity.ts
Normal file
|
@ -0,0 +1,23 @@
|
|||
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';
|
||||
import { COA } from './coa.entity';
|
||||
import { ProductHistoryPrice } from '../../product/entities/product-history-price.entity';
|
||||
|
||||
@Entity()
|
||||
export class TransactionType extends BaseModel {
|
||||
@Column()
|
||||
name: string;
|
||||
}
|
|
@ -23,7 +23,7 @@ enum status {
|
|||
}
|
||||
|
||||
@Entity()
|
||||
export class Transaction extends BaseModel {
|
||||
export class Transactions extends BaseModel {
|
||||
@Column()
|
||||
amount: number;
|
||||
|
||||
|
@ -32,7 +32,4 @@ export class Transaction extends BaseModel {
|
|||
|
||||
@ManyToOne(() => User, (user) => user.id)
|
||||
user: User;
|
||||
|
||||
@ManyToOne(() => ProductHistoryPrice, (productHistory) => productHistory.id)
|
||||
product: ProductHistoryPrice;
|
||||
}
|
|
@ -11,7 +11,7 @@ import {
|
|||
Req,
|
||||
} from '@nestjs/common';
|
||||
import { TransactionService } from './transaction.service';
|
||||
import { CreateTransactionDto } from './dto/create-transaction.dto';
|
||||
import { DistributeTransactionDto } from './dto/distribute-transaction.dto';
|
||||
import { FastifyRequest } from 'fastify';
|
||||
|
||||
@Controller({
|
||||
|
|
|
@ -8,7 +8,7 @@ import {
|
|||
Delete,
|
||||
} from '@nestjs/common';
|
||||
import { TransactionService } from './transaction.service';
|
||||
import { CreateTransactionDto } from './dto/create-transaction.dto';
|
||||
import { DistributeTransactionDto } from './dto/distribute-transaction.dto';
|
||||
import { UpdateTransactionDto } from './dto/update-transaction.dto';
|
||||
|
||||
@Controller({
|
||||
|
@ -19,7 +19,7 @@ export class TransactionController {
|
|||
constructor(private readonly transactionService: TransactionService) {}
|
||||
|
||||
@Post()
|
||||
create(@Body() createTransactionDto: CreateTransactionDto) {
|
||||
create(@Body() createTransactionDto: DistributeTransactionDto) {
|
||||
return this.transactionService.create(createTransactionDto);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,8 +2,23 @@ import { Module } from '@nestjs/common';
|
|||
import { TransactionService } from './transaction.service';
|
||||
import { TransactionController } from './transaction.controller';
|
||||
import { PpobCallbackController } from './ppob_callback.controller';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { COA } from './entities/coa.entity';
|
||||
import { CoaType } from './entities/coa-type.entity';
|
||||
import { TransactionType } from './entities/transaction-type.entity';
|
||||
import { TransactionJournal } from './entities/transaction-journal.entity';
|
||||
import { Transaction } from './entities/transactions.entity';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
TypeOrmModule.forFeature([
|
||||
CoaType,
|
||||
TransactionType,
|
||||
COA,
|
||||
TransactionJournal,
|
||||
Transaction,
|
||||
]),
|
||||
],
|
||||
controllers: [TransactionController, PpobCallbackController],
|
||||
providers: [TransactionService],
|
||||
})
|
||||
|
|
|
@ -1,11 +1,43 @@
|
|||
import { Injectable } from '@nestjs/common';
|
||||
import { CreateTransactionDto } from './dto/create-transaction.dto';
|
||||
import { DistributeTransactionDto } from './dto/distribute-transaction.dto';
|
||||
import { UpdateTransactionDto } from './dto/update-transaction.dto';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Transactions } from './entities/transactions.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
import { User } from '../users/entities/user.entity';
|
||||
import { TransactionType } from './entities/transaction-type.entity';
|
||||
import { TransactionJournal } from './entities/transaction-journal.entity';
|
||||
|
||||
@Injectable()
|
||||
export class TransactionService {
|
||||
create(createTransactionDto: CreateTransactionDto) {
|
||||
return 'This action adds a new transaction';
|
||||
constructor(
|
||||
@InjectRepository(Transactions)
|
||||
private transactionRepository: Repository<Transactions>,
|
||||
@InjectRepository(TransactionType)
|
||||
private transactionType: Repository<TransactionType>,
|
||||
@InjectRepository(TransactionJournal)
|
||||
private transactionJournal: Repository<TransactionJournal>,
|
||||
@InjectRepository(User)
|
||||
private userRepository: Repository<User>,
|
||||
) {}
|
||||
|
||||
async create(distributeTransactionDto: DistributeTransactionDto) {
|
||||
// GET USER
|
||||
// GET COA
|
||||
// GET TYPE TRANSAKSI
|
||||
|
||||
//ADD USER IN INSERT
|
||||
const transactionSaved = await this.transactionRepository.insert({
|
||||
amount: distributeTransactionDto.amount,
|
||||
});
|
||||
|
||||
//INSERT TRANSACTION JOURNAL
|
||||
await this.transactionJournal.insert({
|
||||
amount: distributeTransactionDto.amount,
|
||||
transaction: transactionSaved.identifiers[0],
|
||||
});
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
findAll() {
|
||||
|
|
Loading…
Reference in New Issue
Block a user