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(); ? await this.institucionInfraccionService.findById(
id_institucion_infraccion,
)
: // Asigno institucionInfraccion "Sin multa" por default
await this.institucionInfraccionService.findSinInfraccion(
operadorMulta.institucion,
);
// Creo registro de multa
const nuevaMulta = this.repository.create({
descripcion,
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(
'No se mandó ningún motivo para multar a este alumno.',
);
// Si hay retraso lo agrego a la multa
if (retraso) {
nuevaMulta.retraso = true;
fecha_fin.add(
retraso * operadorMulta.institucion.dias_multa_retraso,
'd',
);
}
fecha_fin.add(institucionInfraccion.dias_multa, 'd');
nuevaMulta.fecha_fin = fecha_fin.toDate();
// Guardo la información
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 = const prestamo =
typeof id_prestamo === 'number' typeof id_prestamo === 'number'
? await this.prestamoService.findById(id_prestamo) ? await this.prestamoService.findById(id_prestamo)
: id_prestamo; : id_prestamo;
const operador = const institucionInfraccion =
typeof id_operador === 'number' await this.institucionInfraccionService.findById(
? await this.operadorService.findById(id_operador) id_institucion_infraccion,
: 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(
id_institucion_infraccion,
)
: null;
// 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.',
); );
// Si no se mando un id_institucion_infraccion const fecha_fin = moment();
if (!institucionInfraccion) {
// Si tampoco se mando retraso saco error // Valido que este prestamo le pertenezca al operador
if (!retraso) if (
throw new ConflictException( operador.institucion.id_institucion !=
'No se mandó ningún motivo para multar a este alumno.', prestamo.equipo.carrito.modulo.institucion.id_institucion
); )
// Asigno institucionInfraccion "Sin multa" por default throw new ConflictException(
institucionInfraccion = 'Este préstamo no pertenece a esta institución.',
await this.institucionInfraccionService.findSinInfraccion( );
operador.institucion, this.validacionMultaCancelacion(prestamo);
); fecha_fin.add(institucionInfraccion.dias_multa, 'd');
}
// Busco una multa con este préstamo // Busco una multa con este préstamo
return this.repository return this.findByPrestamo(prestamo)
.findOne({ where: { prestamo } }) .then((_) =>
.then((existeMulta) => { // Creo y guardo registro
// Si existe saco error this.repository.save(
if (existeMulta) this.repository.create({
throw new ConflictException( descripcion,
'Ya existe una multa asignada a este préstamo.', fecha_fin: fecha_fin.toDate(),
); fecha_inicio: moment().toDate(),
// Si hay retraso lo agrego a la multa institucionInfraccion,
if (retraso) { operadorMulta: operador,
nuevaMulta.retraso = true; prestamo,
ahora.add(retraso * operador.institucion.dias_multa_retraso, 'd'); }),
} ),
nuevaMulta.institucionInfraccion = institucionInfraccion; )
ahora.add(institucionInfraccion.dias_multa, 'd');
nuevaMulta.fecha_fin = ahora.toDate();
// Guardo la información
return this.repository.save(nuevaMulta);
})
.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(
pagina: string; filtros: {
id_institucion?: string; pagina: string;
usuario?: string; nombre?: string;
}) { usuario?: string;
const institucion = filtros.id_institucion },
? await this.institucionService.findById(parseInt(filtros.id_institucion)) operador?: Operador,
: 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,19 +253,29 @@ 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 } })
.createQueryBuilder('mu') .then((existeMulta) => {
.innerJoin('mu.prestamo', 'p') if (existeMulta)
.innerJoin('p.usuario', 'u', 'u.id_usuario = :id_usuario', { throw new ConflictException(
id_usuario: usuario.id_usuario, 'Ya existe una multa asignada a este préstamo.',
}) );
.innerJoinAndSelect('mu.institucionInfraccion', 'ii') return existeMulta;
.innerJoinAndSelect('ii.institucion', 'i') });
.andWhere('mu.activo = 1') }
.getMany(),
); findMultasActivas(usuario: Usuario) {
return this.repository
.createQueryBuilder('mu')
.innerJoin('mu.prestamo', 'p')
.innerJoin('p.usuario', 'u', 'u.id_usuario = :id_usuario', {
id_usuario: usuario.id_usuario,
})
.innerJoinAndSelect('mu.institucionInfraccion', 'ii')
.innerJoinAndSelect('ii.institucion', 'i')
.andWhere('mu.activo = 1')
.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,