add: progress transaction
This commit is contained in:
parent
77db83490f
commit
b1fa917576
|
@ -52,7 +52,7 @@ import configuration from './config/configuration';
|
||||||
UsersModule,
|
UsersModule,
|
||||||
TransactionModule,
|
TransactionModule,
|
||||||
ConfigurableModule,
|
ConfigurableModule,
|
||||||
ProductModule,
|
// ProductModule,
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class AppModule {}
|
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 { 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,
|
UpdateDateColumn,
|
||||||
DeleteDateColumn,
|
DeleteDateColumn,
|
||||||
VersionColumn,
|
VersionColumn,
|
||||||
CreateDateColumn, ManyToOne, ManyToMany, JoinTable,
|
CreateDateColumn, ManyToOne, ManyToMany, JoinTable, OneToOne,
|
||||||
} from 'typeorm';
|
} from 'typeorm';
|
||||||
import { Product } from '../../product/entities/product.entity';
|
import { Product } from '../../product/entities/product.entity';
|
||||||
import { User } from '../../users/entities/user.entity';
|
import { User } from '../../users/entities/user.entity';
|
||||||
import { BaseModel } from '../../config/basemodel.entity';
|
import { BaseModel } from '../../config/basemodel.entity';
|
||||||
import { ProductCategories } from '../../product/entities/product-category.entity';
|
import { ProductCategories } from '../../product/entities/product-category.entity';
|
||||||
import { COA } from './coa.entity';
|
import { COA } from './coa.entity';
|
||||||
|
import { Transactions } from './transactions.entity';
|
||||||
|
import { TransactionType } from './transaction-type.entity';
|
||||||
|
|
||||||
enum type {
|
enum type {
|
||||||
SYSTEM_BANk,
|
SYSTEM_BANk,
|
||||||
|
@ -31,6 +33,12 @@ export class TransactionJournal extends BaseModel {
|
||||||
@Column()
|
@Column()
|
||||||
amount: number;
|
amount: number;
|
||||||
|
|
||||||
|
@OneToOne(() => Transactions, (trans) => trans.id)
|
||||||
|
transaction: Transactions;
|
||||||
|
|
||||||
@ManyToOne(() => COA, (coa) => coa.id)
|
@ManyToOne(() => COA, (coa) => coa.id)
|
||||||
coa: COA;
|
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()
|
@Entity()
|
||||||
export class Transaction extends BaseModel {
|
export class Transactions extends BaseModel {
|
||||||
@Column()
|
@Column()
|
||||||
amount: number;
|
amount: number;
|
||||||
|
|
||||||
|
@ -32,7 +32,4 @@ export class Transaction extends BaseModel {
|
||||||
|
|
||||||
@ManyToOne(() => User, (user) => user.id)
|
@ManyToOne(() => User, (user) => user.id)
|
||||||
user: User;
|
user: User;
|
||||||
|
|
||||||
@ManyToOne(() => ProductHistoryPrice, (productHistory) => productHistory.id)
|
|
||||||
product: ProductHistoryPrice;
|
|
||||||
}
|
}
|
|
@ -11,7 +11,7 @@ import {
|
||||||
Req,
|
Req,
|
||||||
} from '@nestjs/common';
|
} from '@nestjs/common';
|
||||||
import { TransactionService } from './transaction.service';
|
import { TransactionService } from './transaction.service';
|
||||||
import { CreateTransactionDto } from './dto/create-transaction.dto';
|
import { DistributeTransactionDto } from './dto/distribute-transaction.dto';
|
||||||
import { FastifyRequest } from 'fastify';
|
import { FastifyRequest } from 'fastify';
|
||||||
|
|
||||||
@Controller({
|
@Controller({
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
Delete,
|
Delete,
|
||||||
} from '@nestjs/common';
|
} from '@nestjs/common';
|
||||||
import { TransactionService } from './transaction.service';
|
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';
|
import { UpdateTransactionDto } from './dto/update-transaction.dto';
|
||||||
|
|
||||||
@Controller({
|
@Controller({
|
||||||
|
@ -19,7 +19,7 @@ export class TransactionController {
|
||||||
constructor(private readonly transactionService: TransactionService) {}
|
constructor(private readonly transactionService: TransactionService) {}
|
||||||
|
|
||||||
@Post()
|
@Post()
|
||||||
create(@Body() createTransactionDto: CreateTransactionDto) {
|
create(@Body() createTransactionDto: DistributeTransactionDto) {
|
||||||
return this.transactionService.create(createTransactionDto);
|
return this.transactionService.create(createTransactionDto);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,8 +2,23 @@ import { Module } from '@nestjs/common';
|
||||||
import { TransactionService } from './transaction.service';
|
import { TransactionService } from './transaction.service';
|
||||||
import { TransactionController } from './transaction.controller';
|
import { TransactionController } from './transaction.controller';
|
||||||
import { PpobCallbackController } from './ppob_callback.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({
|
@Module({
|
||||||
|
imports: [
|
||||||
|
TypeOrmModule.forFeature([
|
||||||
|
CoaType,
|
||||||
|
TransactionType,
|
||||||
|
COA,
|
||||||
|
TransactionJournal,
|
||||||
|
Transaction,
|
||||||
|
]),
|
||||||
|
],
|
||||||
controllers: [TransactionController, PpobCallbackController],
|
controllers: [TransactionController, PpobCallbackController],
|
||||||
providers: [TransactionService],
|
providers: [TransactionService],
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,11 +1,43 @@
|
||||||
import { Injectable } from '@nestjs/common';
|
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 { 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()
|
@Injectable()
|
||||||
export class TransactionService {
|
export class TransactionService {
|
||||||
create(createTransactionDto: CreateTransactionDto) {
|
constructor(
|
||||||
return 'This action adds a new transaction';
|
@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() {
|
findAll() {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user