add:partner module
This commit is contained in:
79
src/users/partner/partner.service.ts
Normal file
79
src/users/partner/partner.service.ts
Normal file
@@ -0,0 +1,79 @@
|
||||
import {
|
||||
forwardRef,
|
||||
HttpException,
|
||||
HttpStatus,
|
||||
Inject,
|
||||
Injectable,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Connection, EntityNotFoundError, Repository } from 'typeorm';
|
||||
import { CoaService } from '../../transaction/coa.service';
|
||||
import { CreatePartnerDto } from '../dto/create-partner.dto';
|
||||
import { Partner } from '../entities/partner.entity';
|
||||
import * as uuid from 'uuid';
|
||||
import { UsersService } from '../users.service';
|
||||
import { CreateUserDto } from '../dto/create-user.dto';
|
||||
|
||||
@Injectable()
|
||||
export class PartnerService {
|
||||
constructor(
|
||||
@InjectRepository(Partner)
|
||||
private partnerRepository: Repository<Partner>,
|
||||
@Inject(
|
||||
forwardRef(() => {
|
||||
return CoaService;
|
||||
}),
|
||||
)
|
||||
private coaService: CoaService,
|
||||
private userService: UsersService,
|
||||
private connection: Connection,
|
||||
) {}
|
||||
|
||||
async create(createPartnerDto: CreatePartnerDto, currentUser: any) {
|
||||
const check = await this.partnerRepository.findOne({
|
||||
npwp: createPartnerDto.npwp,
|
||||
});
|
||||
|
||||
if (check) {
|
||||
throw new HttpException(
|
||||
{
|
||||
statusCode: HttpStatus.NOT_ACCEPTABLE,
|
||||
error: 'N Already Exist',
|
||||
},
|
||||
HttpStatus.NOT_FOUND,
|
||||
);
|
||||
}
|
||||
|
||||
const partnerData = new Partner();
|
||||
partnerData.id = uuid.v4();
|
||||
partnerData.name = createPartnerDto.name;
|
||||
partnerData.npwp = createPartnerDto.npwp;
|
||||
partnerData.address = createPartnerDto.address;
|
||||
partnerData.status = true;
|
||||
|
||||
await this.connection.transaction(async (manager) => {
|
||||
const result = await manager.insert(Partner, partnerData);
|
||||
});
|
||||
|
||||
const dataUser = new CreateUserDto();
|
||||
dataUser.username = `admin_${partnerData.name}`;
|
||||
dataUser.roleId = '21dceea2-416e-4b55-b74c-12605e1f8d1b';
|
||||
dataUser.superior = false;
|
||||
dataUser.partner = partnerData;
|
||||
dataUser.password = createPartnerDto.password_account;
|
||||
|
||||
await this.userService.create(dataUser, currentUser);
|
||||
|
||||
return partnerData;
|
||||
}
|
||||
|
||||
findAllPartner(page) {
|
||||
return this.partnerRepository.findAndCount({
|
||||
skip: page * 10,
|
||||
take: 10,
|
||||
order: {
|
||||
version: 'DESC',
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user