diff --git a/package-lock.json b/package-lock.json index 53bf97b..ab600f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1981,6 +1981,12 @@ "@types/sizzle": "*" } }, + "@types/lodash": { + "version": "4.14.149", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.149.tgz", + "integrity": "sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==", + "dev": true + }, "@types/minimatch": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", @@ -7847,8 +7853,7 @@ "lodash": { "version": "4.17.15", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", - "dev": true + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" }, "lodash.clonedeep": { "version": "4.5.0", diff --git a/package.json b/package.json index 9d80083..70bb517 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "hammerjs": "^2.0.8", "jquery": "^3.4.1", "js-sha256": "^0.9.0", + "lodash": "^4.17.15", "ngx-bootstrap": "^5.2.0", "popper.js": "^1.16.0", "rxjs": "~6.4.0", @@ -44,6 +45,7 @@ "@fortawesome/fontawesome-free": "^5.12.0", "@types/jasmine": "~3.3.8", "@types/jasminewd2": "~2.0.3", + "@types/lodash": "^4.14.149", "@types/node": "~8.9.4", "codelyzer": "^5.0.0", "devtron": "^1.4.0", diff --git a/src/app/interfaces/ISinonimo.ts b/src/app/interfaces/ISinonimo.ts index 7c042e0..bcee75e 100644 --- a/src/app/interfaces/ISinonimo.ts +++ b/src/app/interfaces/ISinonimo.ts @@ -6,4 +6,5 @@ export interface ISinonimo { productos: IArticulo[]; productoPadre?: number; cantidad?: number; + selected?: boolean; } diff --git a/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts b/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts index beedf7b..d5e9147 100644 --- a/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts +++ b/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts @@ -12,6 +12,7 @@ import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service'; import { SinonimoComponent } from 'src/app/shared/sinonimo/sinonimo.component'; import { trigger, state, style, transition, animate } from '@angular/animations'; import { FiltroCategoriasComponent } from './filtro-categorias/filtro-categorias.component'; +import * as _ from 'lodash'; @Component({ selector: 'app-seleccion-articulos', @@ -125,7 +126,13 @@ export class SeleccionArticulosComponent implements OnInit, AfterViewInit, OnDes getSinonimos(articulo: IArticulo) { this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt) - .subscribe((res: ISinonimo[]) => { + .subscribe((res: any[]) => { + const sinonimos = []; + const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN'); + Object.keys(gruposArticulos).forEach(key => { + sinonimos.push({ productos: gruposArticulos[key] }); + }); + res = sinonimos; if (res.length) { this.openModalSinonimos(res, articulo); } else { @@ -150,15 +157,17 @@ export class SeleccionArticulosComponent implements OnInit, AfterViewInit, OnDes this.modalRef.content.onClose .subscribe((res: any) => { for (const a of articulo.productos) { - if (a.idSinonimo === res.ID_SIN) { - a.CODA = res.articulo.CodArt; - a.CodArt = res.articulo.CodArt; - a.SECA = res.articulo.CodSec; - a.CodSec = res.articulo.CodSec; - a.PreVen = res.articulo.PreVen; - a.id = res.articulo.id; - a.DET_LAR = res.articulo.DET_LAR; - a.DetArt = res.articulo.DetArt; + for (const aRes of res.articulos) { + if (a.idSinonimo === aRes.ID_SIN) { + a.CODA = aRes.CodArt; + a.CodArt = aRes.CodArt; + a.SECA = aRes.CodSec; + aRes.CodSec = aRes.CodSec; + a.PreVen = aRes.PreVen; + a.id = aRes.id; + a.DET_LAR = aRes.DET_LAR; + a.DetArt = aRes.DetArt; + } } } this.articuloService.setArticulo(articulo); diff --git a/src/app/shared/promocion/promocion.component.ts b/src/app/shared/promocion/promocion.component.ts index ada3da6..741277a 100644 --- a/src/app/shared/promocion/promocion.component.ts +++ b/src/app/shared/promocion/promocion.component.ts @@ -59,15 +59,17 @@ export class PromocionComponent implements OnInit { modalSinonimo.content.onClose .subscribe((res: any) => { for (const a of articulo.productos) { - if (a.idSinonimo === res.ID_SIN) { - a.CODA = res.articulo.CodArt; - a.CodArt = res.articulo.CodArt; - a.SECA = res.articulo.CodSec; - a.CodSec = res.articulo.CodSec; - a.PreVen = res.articulo.PreVen; - a.id = res.articulo.id; - a.DET_LAR = res.articulo.DET_LAR; - a.DetArt = res.articulo.DetArt; + for (const aRes of res.articulos) { + if (a.idSinonimo === aRes.ID_SIN) { + a.CODA = aRes.CodArt; + a.CodArt = aRes.CodArt; + a.SECA = aRes.CodSec; + aRes.CodSec = aRes.CodSec; + a.PreVen = aRes.PreVen; + a.id = aRes.id; + a.DET_LAR = aRes.DET_LAR; + a.DetArt = aRes.DetArt; + } } } this.articuloService.setArticulo(articulo); diff --git a/src/app/shared/sinonimo/sinonimo.component.html b/src/app/shared/sinonimo/sinonimo.component.html index b2ba3c4..dc855dd 100644 --- a/src/app/shared/sinonimo/sinonimo.component.html +++ b/src/app/shared/sinonimo/sinonimo.component.html @@ -3,17 +3,16 @@
Elige una opción
-