motivo en cancelacion operador
This commit is contained in:
parent
af0e81cb62
commit
2ddd98be37
@ -16,5 +16,6 @@ import { StatusModule } from '../status/status.module';
|
||||
],
|
||||
controllers: [MotivoController],
|
||||
providers: [MotivoService],
|
||||
exports: [MotivoService],
|
||||
})
|
||||
export class MotivoModule {}
|
||||
|
@ -1,3 +1,4 @@
|
||||
import * as moment from 'moment';
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
@ -5,6 +6,9 @@ import { Motivo } from './entity/motivo.entity';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { OperadorService } from '../operador/operador.service';
|
||||
import { StatusService } from '../status/status.service';
|
||||
import { Equipo } from 'src/equipo/entity/equipo.entity';
|
||||
import { Operador } from 'src/operador/entity/operador.entity';
|
||||
import { Status } from 'src/status/entity/status.entity';
|
||||
|
||||
@Injectable()
|
||||
export class MotivoService {
|
||||
@ -16,19 +20,24 @@ export class MotivoService {
|
||||
) {}
|
||||
|
||||
async create(
|
||||
id_equipo: number,
|
||||
id_operador: number,
|
||||
id_status: number,
|
||||
equipo: Equipo,
|
||||
id_operador: number | Operador,
|
||||
id_status: number | Status,
|
||||
motivo: string,
|
||||
) {
|
||||
const equipo = await this.equipoService.findById(id_equipo);
|
||||
const operador = await this.operadorService.findById(id_operador);
|
||||
const status = await this.statusService.findById(id_status);
|
||||
const operador =
|
||||
typeof id_operador === 'number'
|
||||
? await this.operadorService.findById(id_operador)
|
||||
: id_operador;
|
||||
const status =
|
||||
typeof id_status === 'number'
|
||||
? await this.statusService.findById(id_status)
|
||||
: id_status;
|
||||
|
||||
return this.repository.save(
|
||||
this.repository.create({
|
||||
equipo,
|
||||
fecha_creacion: new Date(),
|
||||
fecha_creacion: moment().toDate(),
|
||||
motivo,
|
||||
operador,
|
||||
status,
|
||||
|
@ -18,6 +18,9 @@ export class Multa {
|
||||
@Column({ type: Boolean, nullable: false, default: true })
|
||||
activo: boolean;
|
||||
|
||||
@Column({ type: String, nullable: false })
|
||||
descripcion: string;
|
||||
|
||||
@Column({ type: Date, nullable: false })
|
||||
fecha_fin: Date;
|
||||
|
||||
|
12
src/prestamo/dto/input/cancelar-operador.dto.ts
Normal file
12
src/prestamo/dto/input/cancelar-operador.dto.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import { IsInt, IsString } from 'class-validator';
|
||||
|
||||
export class CancelarOperadorDto {
|
||||
@IsInt()
|
||||
id_operador: number;
|
||||
|
||||
@IsInt()
|
||||
id_prestamo: number;
|
||||
|
||||
@IsString()
|
||||
motivo: string;
|
||||
}
|
@ -12,6 +12,7 @@ import { HistorialEquipoDto } from './dto/input/historial-equipo.dto';
|
||||
import { HistorialUsuarioDto } from './dto/input/historial-usuario.dto';
|
||||
import { UpdateOperadorDto } from './dto/input/update-operador.dto';
|
||||
import { CancelarUsuarioDto } from './dto/input/cancelar-usuario.dto';
|
||||
import { CancelarOperadorDto } from './dto/input/cancelar-operador.dto';
|
||||
import { PrestamoOutputDto } from './dto/output/prestamo.dto';
|
||||
import { PrestamoActivoOutputDto } from './dto/output/prestamo-activo.dto';
|
||||
import { PrestamoUsuarioOutputDto } from './dto/output/prestamo-usuario.dto';
|
||||
@ -93,10 +94,11 @@ export class PrestamoController {
|
||||
description: 'Ambas variables son obligatorias.',
|
||||
examples: { ejemplo: { value: { id_prestamo: 1, id_operador: 1 } } },
|
||||
})
|
||||
cancelarOperador(@Body() body: UpdateOperadorDto) {
|
||||
cancelarOperador(@Body() body: CancelarOperadorDto) {
|
||||
return this.prestamoService.cancelarOperador(
|
||||
body.id_prestamo,
|
||||
body.id_operador,
|
||||
body.motivo,
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/instit
|
||||
import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/institucion-tipo-entrada.module';
|
||||
import { OperadorModule } from '../operador/operador.module';
|
||||
import { ModuloModule } from '../modulo/modulo.module';
|
||||
import { MotivoModule } from '../motivo/motivo.module';
|
||||
import { StatusModule } from '../status/status.module';
|
||||
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
|
||||
import { UsuarioModule } from '../usuario/usuario.module';
|
||||
@ -23,6 +24,7 @@ import { UsuarioModule } from '../usuario/usuario.module';
|
||||
InstitucionTipoCarritoModule,
|
||||
InstitucionTipoEntradaModule,
|
||||
ModuloModule,
|
||||
MotivoModule,
|
||||
OperadorModule,
|
||||
StatusModule,
|
||||
TypeOrmModule.forFeature([Prestamo]),
|
||||
|
@ -19,6 +19,7 @@ import { InstitucionProgramaService } from '../institucion-programa/institucion-
|
||||
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
|
||||
import { InstitucionTipoEntradaService } from '../institucion-tipo-entrada/institucion-tipo-entrada.service';
|
||||
import { ModuloService } from '../modulo/modulo.service';
|
||||
import { MotivoService } from '../motivo/motivo.service';
|
||||
import { OperadorService } from '../operador/operador.service';
|
||||
import { StatusService } from '../status/status.service';
|
||||
import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
|
||||
@ -35,14 +36,20 @@ export class PrestamoService {
|
||||
private institucionTipoCarritoService: InstitucionTipoCarritoService,
|
||||
private institucionTipoEntradaService: InstitucionTipoEntradaService,
|
||||
private moduloService: ModuloService,
|
||||
private motivoService: MotivoService,
|
||||
private operadorService: OperadorService,
|
||||
private statusService: StatusService,
|
||||
private tipoUsuarioService: TipoUsuarioService,
|
||||
private usuarioService: UsuarioService,
|
||||
) {}
|
||||
|
||||
async cancelarOperador(id_prestamo: number, id_operador: number) {
|
||||
async cancelarOperador(
|
||||
id_prestamo: number,
|
||||
id_operador: number,
|
||||
motivo: string,
|
||||
) {
|
||||
const ahora = moment();
|
||||
const revisar = await this.statusService.findById(6);
|
||||
const operadorRegreso = await this.operadorService.findById(id_operador);
|
||||
const prestamo = await this.findById(id_prestamo);
|
||||
|
||||
@ -60,9 +67,17 @@ export class PrestamoService {
|
||||
prestamo.fecha_entrega = ahora.toDate();
|
||||
prestamo.cancelado_operador = true;
|
||||
prestamo.operadorRegreso = operadorRegreso;
|
||||
prestamo.equipo.status = await this.statusService.findById(6);
|
||||
prestamo.equipo.status = revisar;
|
||||
return this.equipoService
|
||||
.update(prestamo.equipo)
|
||||
.then((_) =>
|
||||
this.motivoService.create(
|
||||
prestamo.equipo,
|
||||
operadorRegreso,
|
||||
revisar,
|
||||
motivo,
|
||||
),
|
||||
)
|
||||
.then((_) => this.repository.save(prestamo))
|
||||
.then((_) => ({ message: 'Se canceló correctamente este préstamo.' }));
|
||||
}
|
||||
@ -351,10 +366,13 @@ export class PrestamoService {
|
||||
}
|
||||
|
||||
async findByNumeroInventario(
|
||||
id_institucion: number,
|
||||
id_institucion: number | Institucion,
|
||||
numero_inventario: string,
|
||||
) {
|
||||
const institucion = await this.institucionService.findById(id_institucion);
|
||||
const institucion =
|
||||
typeof id_institucion === 'number'
|
||||
? await this.institucionService.findById(id_institucion)
|
||||
: id_institucion;
|
||||
|
||||
return this.equipoService
|
||||
.findByNumeroInventario(institucion, numero_inventario)
|
||||
|
Loading…
Reference in New Issue
Block a user