From 1dfb7a2d51d050b6af39b0acb8ea093dec1b90e2 Mon Sep 17 00:00:00 2001 From: xXpuma99Xx <51341582+xXpuma99Xx@users.noreply.github.com> Date: Wed, 2 Nov 2022 16:29:44 -0600 Subject: [PATCH] cambiar nombre carrito --- src/carrito/carrito.controller.ts | 1 + src/carrito/carrito.service.ts | 61 ++++++++++++++--------------- src/carrito/dto/input/create.dto.ts | 7 +++- src/carrito/dto/input/update.dto.ts | 16 ++++++-- 4 files changed, 50 insertions(+), 35 deletions(-) diff --git a/src/carrito/carrito.controller.ts b/src/carrito/carrito.controller.ts index e47d169..c6b6b10 100644 --- a/src/carrito/carrito.controller.ts +++ b/src/carrito/carrito.controller.ts @@ -151,6 +151,7 @@ export class CarritoController { this.validarUsuarioService.validarAdmin(admin); return this.carritoService.create( admin, + body.carrito, body.id_modulo, body.id_tipo_carrito, body.id_marca, diff --git a/src/carrito/carrito.service.ts b/src/carrito/carrito.service.ts index 58bc298..fab71ae 100644 --- a/src/carrito/carrito.service.ts +++ b/src/carrito/carrito.service.ts @@ -39,6 +39,7 @@ export class CarritoService { async create( admin: Operador, + carrito: string, id_modulo: number, id_tipo_carrito: number, id_marca: number, @@ -57,25 +58,17 @@ export class CarritoService { throw new ForbiddenException( 'No puedes crear carritos para este módulo porque no pertenece a tu institución.', ); - // Cuento cuantos carritos tiene ese modulo de ese tipo de carrito - return this.informacionCarritoView - .count({ - where: { - id_modulo: modulo.id_modulo, - id_tipo_carrito: tipoCarrito.id_tipo_carrito, - }, - }) - .then((n) => - // Creo y cuardo el registro - this.repository.save( - this.repository.create({ - carrito: `C${n >= 9 ? '' : '0'}${n + 1}`, - marca, - modelo, - modulo, - tipoCarrito, - }), - ), + + // Creo y guardo el registro + return this.repository + .save( + this.repository.create({ + carrito, + marca, + modelo, + modulo, + tipoCarrito, + }), ) .then((_) => ({ message: 'Se creó correctamente un nuevo carrito para este módulo.', @@ -225,8 +218,8 @@ export class CarritoService { async update( operador: Operador, attrs: Partial, - motivo: string, - laboratorioMovil: boolean, + motivo?: string, + laboratorioMovil?: boolean, ) { return this.findById(attrs.id_carrito) .then(async (carrito) => { @@ -238,22 +231,28 @@ export class CarritoService { throw new ForbiddenException( 'No puedes modificar la información este carrito porque no pertenece a tu institución.', ); + // Valido que se mande el motivo de desactivación + if (attrs.activo === false && !motivo) + throw new ForbiddenException( + 'No se mandó el motivo de desactivación', + ); // Actualizo el objeto con los valores enviados del front Object.assign(carrito, attrs); // Guardo cambios return this.repository.save(carrito); }) - .then((carrito) => + .then((carrito) => { // Creo reporte de cambio de status del carrito - this.caritoMotivoService.create( - carrito, - operador, - attrs.activo, - motivo, - laboratorioMovil, - ), - ) - .then((_) => ({ message: 'Se guardaron los cambios correctamente.' })); + if (attrs.activo === false) + this.caritoMotivoService.create( + carrito, + operador, + attrs.activo, + motivo, + laboratorioMovil, + ); + return { message: 'Se guardaron los cambios correctamente.' }; + }); } private viewToCarrito(infoCarrito: InformacionCarritoView) { diff --git a/src/carrito/dto/input/create.dto.ts b/src/carrito/dto/input/create.dto.ts index cf30959..1fd67f7 100644 --- a/src/carrito/dto/input/create.dto.ts +++ b/src/carrito/dto/input/create.dto.ts @@ -1,6 +1,11 @@ -import { IsInt } from 'class-validator'; +import { IsInt, IsNotEmpty, IsString, MaxLength } from 'class-validator'; export class CreateCarritoDto { + @IsString() + @IsNotEmpty() + @MaxLength(3) + carrito: string; + @IsInt() id_marca: number; diff --git a/src/carrito/dto/input/update.dto.ts b/src/carrito/dto/input/update.dto.ts index ab17dfc..44c9d41 100644 --- a/src/carrito/dto/input/update.dto.ts +++ b/src/carrito/dto/input/update.dto.ts @@ -2,6 +2,7 @@ import { IsBoolean, IsInt, IsNotEmpty, + IsOptional, IsString, MaxLength, } from 'class-validator'; @@ -11,13 +12,22 @@ export class UpdateCarritoDto { id_carrito: number; @IsBoolean() - activo: boolean; + @IsOptional() + activo?: boolean; + + @IsString() + @IsNotEmpty() + @MaxLength(3) + @IsOptional() + carrito?: string; @IsBoolean() - laboratorioMovil: boolean; + @IsOptional() + laboratorioMovil?: boolean; @IsString() @IsNotEmpty() @MaxLength(250) - motivo; + @IsOptional() + motivo?: string; }