add:partner module

This commit is contained in:
ilham
2021-12-13 00:49:13 +07:00
parent 78470a0e3f
commit ff60406af2
14 changed files with 216 additions and 25 deletions

View File

@@ -0,0 +1,18 @@
import { Test, TestingModule } from '@nestjs/testing';
import { PartnerService } from './partner.service';
describe('PartnerService', () => {
let service: PartnerService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [PartnerService],
}).compile();
service = module.get<PartnerService>(PartnerService);
});
it('should be defined', () => {
expect(service).toBeDefined();
});
});

View 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',
},
});
}
}