File
Constructor
constructor(salesForceTypeRepository: Repository)
|
|
Parameters :
Name |
Type |
Optional |
salesForceTypeRepository |
Repository<SalesForceType>
|
No
|
|
Private
Readonly
logger
|
Default value : new Logger(SalesForceTypeService.name)
|
|
import { HttpException, HttpStatus, Inject, Injectable, Logger, forwardRef } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Between, FindOptionsWhere, ILike, In, Repository } from 'typeorm';
import { SalesForceBody, SalesForceQuery } from '../dto/sales-force.dto';
import { SalesForce } from '../entities/sales-force.entity';
import { OrganizationChartService } from '../organization-chart/organization-chart.services';
import { ClientService } from 'src/client/client.service';
import { SalesForceType } from '../entities/sales-force-type.entity';
import { SalesForceTypeBody, SalesForceTypeQuery } from '../dto/sales-force-type.dto';
import { Session } from 'src/middleware/keyclock.middleware';
@Injectable()
export class SalesForceTypeService {
private readonly logger = new Logger(SalesForceTypeService.name);
constructor(
@InjectRepository(SalesForceType)
private readonly salesForceTypeRepository: Repository<SalesForceType>,
) { }
async createSalesForceType(body: SalesForceTypeBody,session:Session) {
let salesForceType= new SalesForceType();
salesForceType.active = body.active;
salesForceType.nameSalesForceType = body.nameSalesForceType;
salesForceType.lastAlterationDate = session.username;
salesForceType.userCreate = session.username;
this.salesForceTypeRepository.save(salesForceType);
return salesForceType ;
}
async putSalesForce(body: SalesForceTypeBody, id: number, session: Session) {
const salesForceType = await this.salesForceTypeRepository.findOne({
where: {
id,
}
});
salesForceType.active = body.active;
salesForceType.nameSalesForceType = body.nameSalesForceType;
salesForceType.lastAlterationDate = session.username;
await this.salesForceTypeRepository.save(salesForceType);
return salesForceType ;
}
async getSalesForceType(query: SalesForceTypeQuery) {
const take = query.pageRows || 10;
const page = query.pageNumber || 1;
const skip = (page - 1) * take;
let where: FindOptionsWhere<SalesForceType> = {
nameSalesForceType: ILike(`%${query.nameSalesForceType || ''}%`),
active: query.active,
}
const [recordset, count] = await this.salesForceTypeRepository.findAndCount({ where, skip, take });
return { recordset, count }
}
// async deleteSalesForceType(id: number, supplierId: number) {
// const client = await this.clientService.findClientByMtrixCode({ mtrixCode: supplierId, clientType: 'F' })
// if (!client) {
// throw new HttpException('supplier_id_not_config_in_client', HttpStatus.UNPROCESSABLE_ENTITY)
// }
// return await this.salesForceRepository.softDelete({ id, supplierId });
// }
// async getSalesForceId(id: number, supplierId: number) {
// const client = await this.clientService.findClientByMtrixCode({ mtrixCode: supplierId, clientType: 'F' })
// if (!client) {
// throw new HttpException('supplier_id_not_config_in_client', HttpStatus.UNPROCESSABLE_ENTITY)
// }
// return await this.salesForceRepository.findOneBy({ id, supplierId });
// }
}