diff --git a/src/app/interfaces/IArticulo.ts b/src/app/interfaces/IArticulo.ts index 7472a30..774dd28 100644 --- a/src/app/interfaces/IArticulo.ts +++ b/src/app/interfaces/IArticulo.ts @@ -14,6 +14,7 @@ export interface IArticulo { FPP?: boolean; id: number; idSinonimo?: number; + ID_SIN?: number; imagenes?: any[]; ImpInt: number; ImpInt2: number; @@ -25,7 +26,10 @@ export interface IArticulo { seleccionado?: boolean; tieneSinonimo?: boolean; tipo_articulo?: number; - comentario?: string; + CODA?: number; + CODP?: number; + SECA?: number; + SECP?: number; } export interface ICodigoBarra { diff --git a/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts b/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts index 7956984..be9d79d 100644 --- a/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts +++ b/src/app/modules/seleccion-articulos/seleccion-articulos.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit, TemplateRef, OnDestroy, HostListener } from '@angular/core'; +import { Component, OnInit, OnDestroy, HostListener } from '@angular/core'; import { BsModalRef, BsModalService } from 'ngx-bootstrap/modal'; import { ArticuloService } from 'src/app/services/articulo/articulo.service'; import { IArticulo } from 'src/app/interfaces/IArticulo'; @@ -6,7 +6,6 @@ import { APP_SETTINGS } from 'src/etc/AppSettings'; import { ICategoria } from 'src/app/interfaces/ICategoria'; import { ISinonimo } from 'src/app/interfaces/ISinonimo'; import { CategoriaService } from 'src/app/services/categoria/categoria.service'; -import { PromocionService } from 'src/app/services/promocion/promocion.service'; import { PromocionComponent } from 'src/app/shared/promocion/promocion.component'; import { InactiveScreenService } from 'src/app/services/inactive-screen/inactive-screen.service'; import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service'; @@ -152,7 +151,7 @@ export class SeleccionArticulosComponent implements OnInit, OnDestroy { this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt) .subscribe((res: ISinonimo[]) => { if (res.length) { - this.openModalSinonimos(res); + this.openModalSinonimos(res, articulo); } else { this.articuloService.setArticulo(articulo); } @@ -166,14 +165,26 @@ export class SeleccionArticulosComponent implements OnInit, OnDestroy { }); } - openModalSinonimos(sinonimosData: ISinonimo[]) { + openModalSinonimos(sinonimosData: ISinonimo[], articulo: IArticulo) { this.modalRef = this.modalService.show(SinonimoComponent, { initialState: { sinonimos: sinonimosData }, class: 'modal-promo modal-dialog-centered' }); this.modalRef.content.onClose - .subscribe((articulo: IArticulo) => { + .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; + } + } this.articuloService.setArticulo(articulo); }); } diff --git a/src/app/services/articulo/articulo.service.ts b/src/app/services/articulo/articulo.service.ts index b2f74ad..2440d40 100644 --- a/src/app/services/articulo/articulo.service.ts +++ b/src/app/services/articulo/articulo.service.ts @@ -44,7 +44,7 @@ export class ArticuloService { setArticulo(articulo: IArticulo) { articulo.cantidad = 1; for (const articuloCarrito of this.carrito) { - if (articuloCarrito.id === articulo.id) { + if (articuloCarrito.id === articulo.id && !articulo.productos.length) { articuloCarrito.cantidad++; this.calcularTotal(); return; diff --git a/src/app/shared/promocion/promocion.component.ts b/src/app/shared/promocion/promocion.component.ts index 4aa8280..ada3da6 100644 --- a/src/app/shared/promocion/promocion.component.ts +++ b/src/app/shared/promocion/promocion.component.ts @@ -40,7 +40,7 @@ export class PromocionComponent implements OnInit { this.sinonimoService.getSinonimos(promo.CodSec, promo.CodArt) .subscribe((res: ISinonimo[]) => { if (res.length) { - this.openModalSinonimos(res); + this.openModalSinonimos(res, promo); } else { promo.cantidad = 1; this.articuloService.setArticulo(promo); @@ -50,14 +50,26 @@ export class PromocionComponent implements OnInit { this.mediaPantalla(); } - openModalSinonimos(sinonimosData: ISinonimo[]) { + openModalSinonimos(sinonimosData: ISinonimo[], articulo: IArticulo) { const modalSinonimo = this.modalService.show(SinonimoComponent, { initialState: { sinonimos: sinonimosData }, class: 'modal-promo modal-dialog-centered' }); modalSinonimo.content.onClose - .subscribe((articulo: IArticulo) => { + .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; + } + } this.articuloService.setArticulo(articulo); this.modalPromocion.hide(); }); diff --git a/src/app/shared/sinonimo/sinonimo.component.ts b/src/app/shared/sinonimo/sinonimo.component.ts index 0610922..655733d 100644 --- a/src/app/shared/sinonimo/sinonimo.component.ts +++ b/src/app/shared/sinonimo/sinonimo.component.ts @@ -49,11 +49,16 @@ export class SinonimoComponent implements OnInit { } continue() { + if (!this.isValid) return; + const ID_SIN = this.articuloSelected.ID_SIN; this.articuloService.getById(this.articuloSelected.id) .subscribe((res: IArticulo) => { this.modalRef.hide(); - this.onClose.next(res); - }); + this.onClose.next({ + articulo: res, + ID_SIN + }); + }, err => console.error(err)); } }