listo multa

This commit is contained in:
xXpuma99Xx 2022-10-25 22:12:11 -05:00
parent 9b5665b3e4
commit 18c899267a
7 changed files with 207 additions and 160 deletions

View File

@ -1,6 +0,0 @@
import { IsNumberString } from 'class-validator';
export class IdUsuarioDto {
@IsNumberString()
id_usuario: string;
}

View File

@ -194,6 +194,7 @@ export class InstitucionUsuarioService {
institucionesUsuario[i].multa = status; institucionesUsuario[i].multa = status;
await this.repository.save(institucionesUsuario[i]); await this.repository.save(institucionesUsuario[i]);
} }
return { message: 'Se multó correctamente a este usuario' };
}); });
} }

View File

@ -9,12 +9,13 @@ export class MultasDto {
@IsNumberString() @IsNumberString()
pagina: string; pagina: string;
@IsNumberString()
@IsOptional()
id_institucion?: string;
@IsString() @IsString()
@IsNotEmpty() @IsNotEmpty()
@IsOptional() @IsOptional()
usuario?: string; usuario?: string;
@IsString()
@IsNotEmpty()
@IsOptional()
nombre?: string;
} }

View File

@ -21,7 +21,6 @@ import { MultaService } from './multa.service';
import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service'; import { ValidarUsuarioService } from '../validar-usuario/validar-usuario.service';
import { Operador } from '../operador/entity/operador.entity'; import { Operador } from '../operador/entity/operador.entity';
import { Usuario } from '../usuario/entity/usuario.entity'; import { Usuario } from '../usuario/entity/usuario.entity';
import { IdUsuarioDto } from '../dto/input/id-usuario.dto';
import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto'; import { IdEquipoPaginaDto } from '../dto/input/id-equipo-pagina.dto';
import { MultarDto } from './dto/input/multar.dto'; import { MultarDto } from './dto/input/multar.dto';
import { MultasDto } from './dto/input/multas.dto'; import { MultasDto } from './dto/input/multas.dto';
@ -62,11 +61,10 @@ export class MultaController {
const operador: Operador = req.user.operador; const operador: Operador = req.user.operador;
this.validarUsuarioService.validarAdminOperador(operador); this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.create( return this.multaService.multaExtemporanea(
body.id_prestamo,
operador, operador,
body.id_prestamo,
body.descripcion, body.descripcion,
null,
body.id_institucion_infraccion, body.id_institucion_infraccion,
); );
} }
@ -100,7 +98,7 @@ export class MultaController {
const operador: Operador = req.user.operador; const operador: Operador = req.user.operador;
this.validarUsuarioService.validarAdminOperador(operador); this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findFullInfoMultaAll(query); return this.multaService.findAll(query);
} }
@Serealize(MultasEquipoOutputDto) @Serealize(MultasEquipoOutputDto)
@ -125,6 +123,7 @@ export class MultaController {
this.validarUsuarioService.validarAdminOperador(operador); this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findAllByIdEquipo( return this.multaService.findAllByIdEquipo(
operador,
parseInt(query.id_equipo), parseInt(query.id_equipo),
parseInt(query.pagina), parseInt(query.pagina),
); );
@ -152,6 +151,7 @@ export class MultaController {
this.validarUsuarioService.validarAdminOperador(operador); this.validarUsuarioService.validarAdminOperador(operador);
return this.multaService.findAllByIdUsuario( return this.multaService.findAllByIdUsuario(
operador,
parseInt(query.id_usuario), parseInt(query.id_usuario),
parseInt(query.pagina), parseInt(query.pagina),
); );
@ -170,11 +170,11 @@ export class MultaController {
name: 'id_usuario', name: 'id_usuario',
type: 'string', type: 'string',
}) })
multasActivas(@Request() req, @Query() query: IdUsuarioDto) { multasActivas(@Request() req) {
const usuario: Usuario = req.user.usuario; const usuario: Usuario = req.user.usuario;
this.validarUsuarioService.validarUsuario(usuario); this.validarUsuarioService.validarUsuario(usuario);
return this.multaService.findMultasActivas(parseInt(query.id_usuario)); return this.multaService.findMultasActivas(usuario);
} }
@Serealize(MessageOutputDto) @Serealize(MessageOutputDto)
@ -193,7 +193,7 @@ export class MultaController {
const admin: Operador = req.user.operador; const admin: Operador = req.user.operador;
this.validarUsuarioService.validarAdmin(admin); this.validarUsuarioService.validarAdmin(admin);
return this.multaService.quitarMulta(body.id_institucion_usuario); return this.multaService.quitarMulta(admin, body.id_institucion_usuario);
} }
// @Get('reporte') // @Get('reporte')

View File

@ -7,10 +7,8 @@ import { Multa } from './entity/multa.entity';
import { FullInformacionMultaView } from './entity/views/full-informacion-multa.view'; import { FullInformacionMultaView } from './entity/views/full-informacion-multa.view';
import { InformacionMultaView } from './entity/views/informacion-multa.view'; import { InformacionMultaView } from './entity/views/informacion-multa.view';
import { EquipoModule } from '../equipo/equipo.module'; import { EquipoModule } from '../equipo/equipo.module';
import { InstitucionModule } from '../institucion/institucion.module';
import { InstitucionInfraccionModule } from '../institucion-infraccion/institucion-infraccion.module'; import { InstitucionInfraccionModule } from '../institucion-infraccion/institucion-infraccion.module';
import { InstitucionUsuarioModule } from '../institucion-usuario/institucion-usuario.module'; import { InstitucionUsuarioModule } from '../institucion-usuario/institucion-usuario.module';
import { OperadorModule } from '../operador/operador.module';
import { PrestamoModule } from '../prestamo/prestamo.module'; import { PrestamoModule } from '../prestamo/prestamo.module';
import { UsuarioModule } from '../usuario/usuario.module'; import { UsuarioModule } from '../usuario/usuario.module';
import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'; import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module';
@ -18,12 +16,11 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module'
@Module({ @Module({
imports: [ imports: [
EquipoModule, EquipoModule,
InstitucionModule,
InstitucionInfraccionModule, InstitucionInfraccionModule,
InstitucionUsuarioModule, InstitucionUsuarioModule,
PassportModule.register({ defaultStrategy: 'jwt' }), PassportModule.register({ defaultStrategy: 'jwt' }),
forwardRef(() => PrestamoModule), forwardRef(() => PrestamoModule),
OperadorModule,
TypeOrmModule.forFeature([ TypeOrmModule.forFeature([
Multa, Multa,
FullInformacionMultaView, FullInformacionMultaView,

View File

@ -7,11 +7,10 @@ import { FullInformacionMultaView } from './entity/views/full-informacion-multa.
import { InformacionMultaView } from './entity/views/informacion-multa.view'; import { InformacionMultaView } from './entity/views/informacion-multa.view';
import { Operador } from '../operador/entity/operador.entity'; import { Operador } from '../operador/entity/operador.entity';
import { Prestamo } from '../prestamo/entity/prestamo.entity'; import { Prestamo } from '../prestamo/entity/prestamo.entity';
import { Usuario } from '../usuario/entity/usuario.entity';
import { EquipoService } from '../equipo/equipo.service'; import { EquipoService } from '../equipo/equipo.service';
import { InstitucionService } from '../institucion/institucion.service';
import { InstitucionInfraccionService } from '../institucion-infraccion/institucion-infraccion.service'; import { InstitucionInfraccionService } from '../institucion-infraccion/institucion-infraccion.service';
import { InstitucionUsuarioService } from '../institucion-usuario/institucion-usuario.service'; import { InstitucionUsuarioService } from '../institucion-usuario/institucion-usuario.service';
import { OperadorService } from '../operador/operador.service';
import { PrestamoService } from '../prestamo/prestamo.service'; import { PrestamoService } from '../prestamo/prestamo.service';
import { UsuarioService } from '../usuario/usuario.service'; import { UsuarioService } from '../usuario/usuario.service';
@ -24,82 +23,112 @@ export class MultaService {
@InjectRepository(InformacionMultaView) @InjectRepository(InformacionMultaView)
private informacionMultaView: Repository<InformacionMultaView>, private informacionMultaView: Repository<InformacionMultaView>,
private equipoService: EquipoService, private equipoService: EquipoService,
private institucionService: InstitucionService,
private institucionInfraccionService: InstitucionInfraccionService, private institucionInfraccionService: InstitucionInfraccionService,
private institucionUsuarioService: InstitucionUsuarioService, private institucionUsuarioService: InstitucionUsuarioService,
private operadorService: OperadorService,
private prestamoService: PrestamoService, private prestamoService: PrestamoService,
private usuarioService: UsuarioService, private usuarioService: UsuarioService,
) {} ) {}
async create( async create(
id_prestamo: number | Prestamo, operadorMulta: Operador,
id_operador: number | Operador, prestamo: Prestamo,
descripcion: string, descripcion: string,
retraso?: number, retraso?: number,
id_institucion_infraccion?: number, id_institucion_infraccion?: number,
) { ) {
console.log('hola1'); const institucionInfraccion = id_institucion_infraccion
const ahora = moment();
const prestamo =
typeof id_prestamo === 'number'
? await this.prestamoService.findById(id_prestamo)
: id_prestamo;
const operador =
typeof id_operador === 'number'
? await this.operadorService.findById(id_operador)
: id_operador;
// Creo registro de multa
const nuevaMulta = this.repository.create({
descripcion,
fecha_inicio: ahora.toDate(),
operadorMulta: operador,
prestamo,
});
let institucionInfraccion = id_institucion_infraccion
? await this.institucionInfraccionService.findById( ? await this.institucionInfraccionService.findById(
id_institucion_infraccion, id_institucion_infraccion,
) )
: null; : // Asigno institucionInfraccion "Sin multa" por default
await this.institucionInfraccionService.findSinInfraccion(
// Valido que este prestamo no haya sido cancelado poer el usuario u operador operadorMulta.institucion,
if (prestamo.cancelado_operador || prestamo.cancelado_usuario)
throw new ConflictException(
'No se puede multar a un usuario con un préstamo que fue cancelado.',
); );
// Si no se mando un id_institucion_infraccion // Creo registro de multa
if (!institucionInfraccion) { const nuevaMulta = this.repository.create({
// Si tampoco se mando retraso saco error descripcion,
if (!retraso) fecha_inicio: moment().toDate(),
operadorMulta,
prestamo,
institucionInfraccion,
});
const existeMulta = await this.findByPrestamo(prestamo).catch((err) => {
if (err) true;
return false;
});
const fecha_fin = moment();
// Si ya tiene multa es que hubo un error en otra ocasión pero se creo la multa
// correctamente esa vez
if (existeMulta) return;
this.validacionMultaCancelacion(prestamo);
// Si no se mando un id_institucion_infraccion ni retraso saco error
if (!institucionInfraccion && !retraso)
throw new ConflictException( throw new ConflictException(
'No se mandó ningún motivo para multar a este alumno.', 'No se mandó ningún motivo para multar a este alumno.',
); );
// Asigno institucionInfraccion "Sin multa" por default
institucionInfraccion =
await this.institucionInfraccionService.findSinInfraccion(
operador.institucion,
);
}
// Busco una multa con este préstamo
return this.repository
.findOne({ where: { prestamo } })
.then((existeMulta) => {
// Si existe saco error
if (existeMulta)
throw new ConflictException(
'Ya existe una multa asignada a este préstamo.',
);
// Si hay retraso lo agrego a la multa // Si hay retraso lo agrego a la multa
if (retraso) { if (retraso) {
nuevaMulta.retraso = true; nuevaMulta.retraso = true;
ahora.add(retraso * operador.institucion.dias_multa_retraso, 'd'); fecha_fin.add(
retraso * operadorMulta.institucion.dias_multa_retraso,
'd',
);
} }
nuevaMulta.institucionInfraccion = institucionInfraccion; fecha_fin.add(institucionInfraccion.dias_multa, 'd');
ahora.add(institucionInfraccion.dias_multa, 'd'); nuevaMulta.fecha_fin = fecha_fin.toDate();
nuevaMulta.fecha_fin = ahora.toDate();
// Guardo la información // Guardo la información
return this.repository.save(nuevaMulta); return this.repository.save(nuevaMulta).then((_) =>
}) // Actualizo multas del usuario
this.institucionUsuarioService.updateMulta(
operadorMulta.institucion.id_institucion,
prestamo.usuario.id_usuario,
true,
),
);
}
async multaExtemporanea(
operador: Operador,
id_prestamo: number,
descripcion: string,
id_institucion_infraccion: number,
) {
const prestamo =
typeof id_prestamo === 'number'
? await this.prestamoService.findById(id_prestamo)
: id_prestamo;
const institucionInfraccion =
await this.institucionInfraccionService.findById(
id_institucion_infraccion,
);
const fecha_fin = moment();
// Valido que este prestamo le pertenezca al operador
if (
operador.institucion.id_institucion !=
prestamo.equipo.carrito.modulo.institucion.id_institucion
)
throw new ConflictException(
'Este préstamo no pertenece a esta institución.',
);
this.validacionMultaCancelacion(prestamo);
fecha_fin.add(institucionInfraccion.dias_multa, 'd');
// Busco una multa con este préstamo
return this.findByPrestamo(prestamo)
.then((_) =>
// Creo y guardo registro
this.repository.save(
this.repository.create({
descripcion,
fecha_fin: fecha_fin.toDate(),
fecha_inicio: moment().toDate(),
institucionInfraccion,
operadorMulta: operador,
prestamo,
}),
),
)
.then((_) => .then((_) =>
// Actualizo multas del usuario // Actualizo multas del usuario
this.institucionUsuarioService.updateMulta( this.institucionUsuarioService.updateMulta(
@ -113,43 +142,48 @@ export class MultaService {
desactivarMultas() { desactivarMultas() {
const ahora = moment(); const ahora = moment();
// Busco todas las multas desactivadas
return this.repository return this.repository
.find({ where: { activo: true } }) .find({
join: {
alias: 'mu',
innerJoinAndSelect: { p: 'mu.prestamo', u: 'p.usuario' },
},
where: { activo: true },
})
.then(async (multas) => { .then(async (multas) => {
//recorro todo el array
for (let i = 0; i < multas.length; i++) for (let i = 0; i < multas.length; i++)
// Si ya caducó
if (ahora.diff(moment(multas[i].fecha_fin)) > 0) { if (ahora.diff(moment(multas[i].fecha_fin)) > 0) {
const instituciones = multas[i].prestamo.usuario.instituciones; // Desactivo multa
multas[i].activo = false; multas[i].activo = false;
await this.repository.save(multas[i]); // Guardo cambios
for (let j = 0; j < instituciones.length; j++) { await this.repository.save(multas[i]).then(() =>
const institucionUsuario = instituciones[j]; // Quito multas en institución usuario
this.institucionUsuarioService.updateMulta(
if ( multas[i].operadorMulta.institucion.id_institucion,
institucionUsuario.institucionCarrera.institucion multas[i].prestamo.usuario.id_usuario,
.id_institucion === false,
multas[i].operadorMulta.institucion.id_institucion ),
) { );
institucionUsuario.multa = false;
await this.institucionUsuarioService.save(institucionUsuario);
}
}
} }
}); });
} }
async findFullInfoMultaAll(filtros: { findAll(
filtros: {
pagina: string; pagina: string;
id_institucion?: string; nombre?: string;
usuario?: string; usuario?: string;
}) { },
const institucion = filtros.id_institucion operador?: Operador,
? await this.institucionService.findById(parseInt(filtros.id_institucion)) ) {
: null;
const busqueda: FindOptionsWhere<FullInformacionMultaView> = {}; const busqueda: FindOptionsWhere<FullInformacionMultaView> = {};
if (filtros.nombre) busqueda.nombre = Like(`%${filtros.nombre}%`);
if (filtros.usuario) busqueda.usuario = Like(`%${filtros.usuario}%`); if (filtros.usuario) busqueda.usuario = Like(`%${filtros.usuario}%`);
if (institucion) busqueda.id_institucion = institucion.id_institucion; if (operador) busqueda.id_institucion = operador.institucion.id_institucion;
return this.fullInformacionMultaView return this.fullInformacionMultaView
.findAndCount({ .findAndCount({
where: busqueda, where: busqueda,
@ -173,11 +207,14 @@ export class MultaService {
}); });
} }
findAllByIdEquipo(id_equipo: number, pagina: number) { findAllByIdEquipo(operador: Operador, id_equipo: number, pagina: number) {
return this.equipoService.findById(id_equipo).then((equipo) => return this.equipoService.findById(id_equipo).then((equipo) =>
this.fullInformacionMultaView this.fullInformacionMultaView
.findAndCount({ .findAndCount({
where: { id_equipo: equipo.id_equipo }, where: {
id_equipo: equipo.id_equipo,
id_institucion: operador.institucion.id_institucion,
},
skip: (pagina - 1) * 25, skip: (pagina - 1) * 25,
take: 25, take: 25,
}) })
@ -193,11 +230,14 @@ export class MultaService {
); );
} }
findAllByIdUsuario(id_usuario: number, pagina: number) { findAllByIdUsuario(operador: Operador, id_usuario: number, pagina: number) {
return this.usuarioService.findById(id_usuario).then((usuario) => return this.usuarioService.findById(id_usuario).then((usuario) =>
this.fullInformacionMultaView this.fullInformacionMultaView
.findAndCount({ .findAndCount({
where: { id_usuario: usuario.id_usuario }, where: {
id_usuario: usuario.id_usuario,
id_institucion: operador.institucion.id_institucion,
},
skip: (pagina - 1) * 25, skip: (pagina - 1) * 25,
take: 25, take: 25,
}) })
@ -213,9 +253,20 @@ export class MultaService {
); );
} }
findMultasActivas(id_usuario: number) { findByPrestamo(prestamo: Prestamo) {
return this.usuarioService.findById(id_usuario).then((usuario) => return this.repository
this.repository .findOne({ select: ['id_multa'], where: { prestamo } })
.then((existeMulta) => {
if (existeMulta)
throw new ConflictException(
'Ya existe una multa asignada a este préstamo.',
);
return existeMulta;
});
}
findMultasActivas(usuario: Usuario) {
return this.repository
.createQueryBuilder('mu') .createQueryBuilder('mu')
.innerJoin('mu.prestamo', 'p') .innerJoin('mu.prestamo', 'p')
.innerJoin('p.usuario', 'u', 'u.id_usuario = :id_usuario', { .innerJoin('p.usuario', 'u', 'u.id_usuario = :id_usuario', {
@ -224,8 +275,7 @@ export class MultaService {
.innerJoinAndSelect('mu.institucionInfraccion', 'ii') .innerJoinAndSelect('mu.institucionInfraccion', 'ii')
.innerJoinAndSelect('ii.institucion', 'i') .innerJoinAndSelect('ii.institucion', 'i')
.andWhere('mu.activo = 1') .andWhere('mu.activo = 1')
.getMany(), .getMany();
);
} }
private fullViewToMulta(infoMulta: FullInformacionMultaView) { private fullViewToMulta(infoMulta: FullInformacionMultaView) {
@ -262,15 +312,22 @@ export class MultaService {
}); });
} }
async quitarMulta(id_institucion_usuario: number) { private validacionMultaCancelacion(prestamo: Prestamo) {
// Valido que este prestamo no haya sido cancelado poer el usuario u operador
if (prestamo.cancelado_operador || prestamo.cancelado_usuario)
throw new ConflictException(
'No se puede multar a un usuario con un préstamo que fue cancelado.',
);
}
async quitarMulta(admin: Operador, id_institucion_usuario: number) {
const institucionUsuario = await this.institucionUsuarioService.findById( const institucionUsuario = await this.institucionUsuarioService.findById(
id_institucion_usuario, id_institucion_usuario,
); );
const multa = await this.repository
return this.repository
.createQueryBuilder('mu') .createQueryBuilder('mu')
.innerJoin('mu.prestamo', 'p') .innerJoinAndSelect('mu.prestamo', 'p')
.innerJoin('p.usuario', 'u') .innerJoinAndSelect('p.usuario', 'u')
.innerJoin( .innerJoin(
'u.instituciones', 'u.instituciones',
'is', 'is',
@ -278,17 +335,22 @@ export class MultaService {
{ id_institucion_usuario: institucionUsuario.id_institucion_usuario }, { id_institucion_usuario: institucionUsuario.id_institucion_usuario },
) )
.where('mu.activo = 1') .where('mu.activo = 1')
.getOne() .getOne();
.then((multa) => {
if (!multa) if (!multa)
throw new ConflictException( throw new ConflictException(
'Este usuario no tiene una multa activa en esta institución.', 'Este usuario no tiene una multa activa en esta institución.',
); );
multa.activo = false; multa.activo = false;
institucionUsuario.multa = false; return this.repository
return this.repository.save(multa); .save(multa)
}) .then((_) =>
.then((_) => this.institucionUsuarioService.save(institucionUsuario)) this.institucionUsuarioService.updateMulta(
admin.institucion.id_institucion,
multa.prestamo.usuario.id_usuario,
false,
),
)
.then((_) => ({ message: 'Se guardaron los cambios correctamente.' })); .then((_) => ({ message: 'Se guardaron los cambios correctamente.' }));
} }
} }

View File

@ -738,8 +738,8 @@ export class PrestamoService {
} }
async regresar( async regresar(
prestamo: Prestamo,
operadorRegreso: Operador, operadorRegreso: Operador,
prestamo: Prestamo,
id_status: number, id_status: number,
motivo?: string, motivo?: string,
descripcion?: string, descripcion?: string,
@ -764,7 +764,6 @@ export class PrestamoService {
); );
if (id_institucion_infraccion && !descripcion) if (id_institucion_infraccion && !descripcion)
throw new ConflictException('No se mandó la descripción de lo ocurrido.'); throw new ConflictException('No se mandó la descripción de lo ocurrido.');
console.log('HOLA');
prestamo.activo = false; prestamo.activo = false;
prestamo.fecha_entrega = ahora.toDate(); prestamo.fecha_entrega = ahora.toDate();
prestamo.operadorRegreso = operadorRegreso; prestamo.operadorRegreso = operadorRegreso;
@ -779,8 +778,8 @@ export class PrestamoService {
// a motivo, y mandar la id_institucion_infraccion // a motivo, y mandar la id_institucion_infraccion
if (id_institucion_infraccion) if (id_institucion_infraccion)
await this.multaService.create( await this.multaService.create(
prestamo,
operadorRegreso, operadorRegreso,
prestamo,
`${mensajeTardanza} ${descripcion}`, `${mensajeTardanza} ${descripcion}`,
semanasCastigo, semanasCastigo,
id_institucion_infraccion, id_institucion_infraccion,
@ -788,8 +787,8 @@ export class PrestamoService {
// Multa normal // Multa normal
else else
await this.multaService.create( await this.multaService.create(
prestamo,
operadorRegreso, operadorRegreso,
prestamo,
mensajeTardanza, mensajeTardanza,
semanasCastigo, semanasCastigo,
); );
@ -797,23 +796,16 @@ export class PrestamoService {
// De lo contrario, si se mandó id_institucion_infraccion significa que // De lo contrario, si se mandó id_institucion_infraccion significa que
// el usuario solo solo daño el equipo // el usuario solo solo daño el equipo
await this.multaService.create( await this.multaService.create(
prestamo,
operadorRegreso, operadorRegreso,
prestamo,
descripcion, descripcion,
null, null,
id_institucion_infraccion, id_institucion_infraccion,
); );
console.log('hola'); // Guardo los cambios del equipo
// Guardo los cambios del préstamo return this.equipoService
return this.repository .updateStatus(prestamo.equipo, operadorRegreso, motivo)
.save(prestamo) .then((_) => this.repository.save(prestamo)) // Guardo los cambios del préstamo
.then((_) =>
this.equipoService.updateStatus(
prestamo.equipo,
operadorRegreso,
motivo,
),
)
.then((_) => { .then((_) => {
// Actualizo la interfaz del usuario // Actualizo la interfaz del usuario
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario); this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
@ -836,8 +828,8 @@ export class PrestamoService {
// Busco el prestamo por id prestamo y luego regreso el equipo // Busco el prestamo por id prestamo y luego regreso el equipo
return this.findById(id_prestamo).then((prestamo) => return this.findById(id_prestamo).then((prestamo) =>
this.regresar( this.regresar(
prestamo,
operador, operador,
prestamo,
id_status, id_status,
motivo, motivo,
descripcion, descripcion,
@ -863,8 +855,8 @@ export class PrestamoService {
numero_inventario, numero_inventario,
).then((prestamo) => ).then((prestamo) =>
this.regresar( this.regresar(
prestamo,
operador, operador,
prestamo,
id_status, id_status,
motivo, motivo,
descripcion, descripcion,
@ -914,7 +906,7 @@ export class PrestamoService {
); );
} }
validacionOperadorPrestamo( private validacionOperadorPrestamo(
prestamo: Prestamo, prestamo: Prestamo,
operador: Operador, operador: Operador,
modulo?: Modulo, modulo?: Modulo,