Commit 635b98e2c5f7372c60466209d63d47e14b930fc0

Authored by Benjamin Rodriguez
1 parent 3b407007f6
Exists in develop

cambio texto en modal confirmacion y agrego x para salir

src/app/shared/confirmacion/confirmacion.component.html
1 <div class="modal-header bg-primary rounded-top pt-4 px-2"> 1 <div class="modal-header bg-primary rounded-top pt-4 px-2">
2 <img
3 draggable="false"
4 ondragstart="return false;"
5 (contextmenu)="false"
6 (click)="close()"
7 class="btn-effect mt-n3 icon-30 mr-2 position-absolute right-0"
8 src="assets/img/icono-cancelar-blanco.svg">
2 <div class="row mx-0 w-100 justify-content-between"> 9 <div class="row mx-0 w-100 justify-content-between">
3 <div class="col-8"> 10 <div class="col-8">
4 <p *ngIf="titleMessage" class="h3 text-white">{{titleMessage}}</p> 11 <p *ngIf="titleMessage" class="h3 text-white">{{titleMessage}}</p>
5 </div> 12 </div>
6 </div> 13 </div>
7 <div *ngIf="imagenPath" class="col-4 align-self-center"> 14 <div *ngIf="imagenPath" class="col-4 align-self-center">
8 <img 15 <img
9 draggable="false" 16 draggable="false"
10 ondragstart="return false;" 17 ondragstart="return false;"
11 (contextmenu)="false" 18 (contextmenu)="false"
12 src="{{urlImagenes}}{{imagenPath}}" 19 src="{{urlImagenes}}{{imagenPath}}"
13 onerror="this.src='assets/img/imagen-no-encontrada.jpg'" 20 onerror="this.src='assets/img/imagen-no-encontrada.jpg'"
14 class="card-img-top img-fluid rounded-circle"> 21 class="card-img-top img-fluid rounded-circle">
15 </div> 22 </div>
16 </div> 23 </div>
17 <div class=" col-12 modal-body bg-primary rounded-bottom pb-3 px-2"> 24 <div class=" col-12 modal-body bg-primary rounded-bottom pb-3 px-2">
18 <div class="row justify-content-between mx-0 w-100"> 25 <div class="row justify-content-between mx-0 w-100">
19 <div class="col-8"> 26 <div class="col-8">
20 <p *ngIf="footerMessageFirst" class="text-white"><small>{{footerMessageFirst}}</small></p > 27 <p *ngIf="footerMessageFirst" class="text-white"><small>{{footerMessageFirst}}</small></p >
21 <h1 *ngIf="footerMessageSecond" class="text-white mb-4">{{footerMessageSecond}}</h1> 28 <h1 *ngIf="footerMessageSecond" class="text-white mb-4">{{footerMessageSecond}}</h1>
22 </div> 29 </div>
23 <div class="col-4"> 30 <div class="col-4">
24 <div 31 <div
25 class="mx-0" 32 class="mx-0"
26 (click)="confirmarArticulo()"> 33 (click)="confirmarArticulo()">
27 <div class="col-auto bg-white badge-pill"> 34 <div class="col-auto bg-white badge-pill">
28 <div class="row justify-content-between"> 35 <div class="row justify-content-between">
29 <div *ngIf="footerConfirmation" class="col-auto px-0 align-self-center text-primary pl-3"> 36 <div *ngIf="footerConfirmation" class="col-auto px-0 align-self-center text-primary pl-3">
30 <p class="font-weight-bold">{{footerConfirmation | currency}}</p> 37 <p class="font-weight-bold">{{footerConfirmation | currency}}</p>
31 </div> 38 </div>
32 <div class="col-auto px-0"> 39 <div class="col-auto px-0">
33 <img 40 <img
34 draggable="false" 41 draggable="false"
35 ondragstart="return false;" 42 ondragstart="return false;"
36 (contextmenu)="false" 43 (contextmenu)="false"
37 class="d-block ml-auto my-1 icon-30 pr-2" 44 class="d-block ml-auto my-1 icon-30 pr-2"
38 src="assets/img/ir-color.svg"> 45 src="assets/img/ir-color.svg">
39 </div> 46 </div>
40 </div> 47 </div>
41 </div> 48 </div>
42 </div> 49 </div>
43 <div *ngIf="footerClose" class="bg-white badge-pill mt-2"> 50 <div *ngIf="footerClose" class="bg-white badge-pill mt-2">
44 <div class="row justify-content-between"> 51 <div class="row justify-content-between">
45 <div 52 <div
46 class="col-auto mx-0 " 53 class="col-auto mx-0 "
47 (click)="close()"> 54 (click)="close()">
48 <p class="font-weight-bold text-center text-primary">{{footerClose}}</p> 55 <p class="font-weight-bold text-center text-primary">{{footerClose}}</p>
49 </div> 56 </div>
50 <i class="fas fa-undo-alt text-info mr-3 my-auto"></i> 57 <i class="fas fa-undo-alt text-info mr-3 my-auto"></i>
51 </div> 58 </div>
52 </div> 59 </div>
53 </div> 60 </div>
54 </div> 61 </div>
55 </div> 62 </div>
56 63
src/app/shared/header-publicidad/header-publicidad.component.ts
1 import { Component, OnInit, TemplateRef } from '@angular/core'; 1 import { Component, OnInit, TemplateRef } from '@angular/core';
2 import { APP_SETTINGS } from 'src/etc/AppSettings'; 2 import { APP_SETTINGS } from 'src/etc/AppSettings';
3 import { IPublicidad } from 'src/app/interfaces/IPublicidad'; 3 import { IPublicidad } from 'src/app/interfaces/IPublicidad';
4 import { PublicidadService } from 'src/app/services/publicidad/publicidad.service'; 4 import { PublicidadService } from 'src/app/services/publicidad/publicidad.service';
5 import { IArticulo } from 'src/app/interfaces/IArticulo'; 5 import { IArticulo } from 'src/app/interfaces/IArticulo';
6 import { PromocionComponent } from '../promocion/promocion.component'; 6 import { PromocionComponent } from '../promocion/promocion.component';
7 import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal'; 7 import { BsModalService, BsModalRef } from 'ngx-bootstrap/modal';
8 import { ArticuloService } from 'src/app/services/articulo/articulo.service'; 8 import { ArticuloService } from 'src/app/services/articulo/articulo.service';
9 import { ConfirmacionComponent } from '../confirmacion/confirmacion.component'; 9 import { ConfirmacionComponent } from '../confirmacion/confirmacion.component';
10 import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service'; 10 import { SinonimoService } from 'src/app/services/sinonimo/sinonimo.service';
11 import { ISinonimo } from 'src/app/interfaces/ISinonimo'; 11 import { ISinonimo } from 'src/app/interfaces/ISinonimo';
12 import { SinonimoComponent } from '../sinonimo/sinonimo.component'; 12 import { SinonimoComponent } from '../sinonimo/sinonimo.component';
13 import * as _ from 'lodash'; 13 import * as _ from 'lodash';
14 14
15 @Component({ 15 @Component({
16 selector: 'app-header-publicidad', 16 selector: 'app-header-publicidad',
17 templateUrl: './header-publicidad.component.html', 17 templateUrl: './header-publicidad.component.html',
18 styleUrls: ['./header-publicidad.component.scss'] 18 styleUrls: ['./header-publicidad.component.scss']
19 }) 19 })
20 export class HeaderPublicidadComponent implements OnInit { 20 export class HeaderPublicidadComponent implements OnInit {
21 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`; 21 urlImagenes = `${APP_SETTINGS.apiDeboSuite}/imagenes/`;
22 publicidades: IPublicidad[] = []; 22 publicidades: IPublicidad[] = [];
23 modalRef: BsModalRef; 23 modalRef: BsModalRef;
24 24
25 constructor( 25 constructor(
26 private publicidadService: PublicidadService, 26 private publicidadService: PublicidadService,
27 private articuloService: ArticuloService, 27 private articuloService: ArticuloService,
28 private modalService: BsModalService, 28 private modalService: BsModalService,
29 private sinonimoService: SinonimoService 29 private sinonimoService: SinonimoService
30 ) { } 30 ) { }
31 31
32 ngOnInit() { 32 ngOnInit() {
33 this.getPublicidades(); 33 this.getPublicidades();
34 this.mediaPantalla(); 34 this.mediaPantalla();
35 } 35 }
36 36
37 getPublicidades() { 37 getPublicidades() {
38 this.publicidadService.getAll() 38 this.publicidadService.getAll()
39 .subscribe((res: IPublicidad[]) => { 39 .subscribe((res: IPublicidad[]) => {
40 this.publicidades = res; 40 this.publicidades = res;
41 }, err => console.error(err)); 41 }, err => console.error(err));
42 } 42 }
43 43
44 elegirArticulo(publicidad: IPublicidad) { 44 elegirArticulo(publicidad: IPublicidad) {
45 if (publicidad.id_articulo) this.getByID(publicidad.id_articulo); 45 if (publicidad.id_articulo) this.getByID(publicidad.id_articulo);
46 } 46 }
47 47
48 getByID(id: number) { 48 getByID(id: number) {
49 this.articuloService.getById(id) 49 this.articuloService.getById(id)
50 .subscribe((res: IArticulo) => { 50 .subscribe((res: IArticulo) => {
51 if (res.FPP) { 51 if (res.FPP) {
52 this.openModalPromos(res); 52 this.openModalPromos(res);
53 return; 53 return;
54 } else { 54 } else {
55 this.openModalConfirmacion(res); 55 this.openModalConfirmacion(res);
56 return; 56 return;
57 } 57 }
58 }, err => console.error(err)); 58 }, err => console.error(err));
59 } 59 }
60 60
61 openModalPromos(articulo: IArticulo) { 61 openModalPromos(articulo: IArticulo) {
62 this.modalRef = this.modalService.show(PromocionComponent, 62 this.modalRef = this.modalService.show(PromocionComponent,
63 { 63 {
64 initialState: { 64 initialState: {
65 idArticulo: articulo.id 65 idArticulo: articulo.id
66 }, 66 },
67 class: 'modal-promo modal-dialog-centered' 67 class: 'modal-promo modal-dialog-centered'
68 }); 68 });
69 } 69 }
70 70
71 openModalConfirmacion(articulo: IArticulo) { 71 openModalConfirmacion(articulo: IArticulo) {
72 this.modalRef = this.modalService.show(ConfirmacionComponent, 72 this.modalRef = this.modalService.show(ConfirmacionComponent,
73 { 73 {
74 initialState: { 74 initialState: {
75 titleMessage: articulo.DET_LAR, 75 titleMessage: articulo.DET_LAR,
76 imagenPath: articulo.imagenes.length ? articulo.imagenes[0].imagen : 'assets/img/imagen-no-encontrada.jpg', 76 imagenPath: articulo.imagenes.length ? articulo.imagenes[0].imagen : 'assets/img/imagen-no-encontrada.jpg',
77 footerMessageFirst: `¿DESEA AGREGAR ESTE ARTÍCULO`, 77 footerMessageFirst: `¿DESEA AGREGAR ESTE COMBO`,
78 footerMessageSecond: `a su carrito?`, 78 footerMessageSecond: `a su carrito?`,
79 footerConfirmation: articulo.PreVen, 79 footerConfirmation: articulo.PreVen,
80 footerClose: `volver` 80 footerClose: `volver`
81 }, 81 },
82 class: 'modal-promo modal-dialog-centered' 82 class: 'modal-promo modal-dialog-centered'
83 }); 83 });
84 this.modalRef.content.onClose.subscribe(() => { 84 this.modalRef.content.onClose.subscribe(() => {
85 this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt) 85 this.sinonimoService.getSinonimos(articulo.CodSec, articulo.CodArt)
86 .subscribe((res: ISinonimo[]) => { 86 .subscribe((res: ISinonimo[]) => {
87 if (res.length) { 87 if (res.length) {
88 const sinonimos = []; 88 const sinonimos = [];
89 const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN'); 89 const gruposArticulos = _.groupBy(res[0].productos, 'ID_SIN');
90 Object.keys(gruposArticulos).forEach(key => { 90 Object.keys(gruposArticulos).forEach(key => {
91 sinonimos.push({ productos: gruposArticulos[key] }); 91 sinonimos.push({ productos: gruposArticulos[key] });
92 }); 92 });
93 res = sinonimos; 93 res = sinonimos;
94 this.openModalSinonimos(res, articulo); 94 this.openModalSinonimos(res, articulo);
95 } else { 95 } else {
96 articulo.cantidad = 1; 96 articulo.cantidad = 1;
97 this.articuloService.setArticulo(articulo); 97 this.articuloService.setArticulo(articulo);
98 } 98 }
99 }, err => console.error(err)); 99 }, err => console.error(err));
100 }); 100 });
101 this.mediaPantalla(); 101 this.mediaPantalla();
102 } 102 }
103 103
104 openModalSinonimos(sinonimosData: ISinonimo[], articulo: IArticulo) { 104 openModalSinonimos(sinonimosData: ISinonimo[], articulo: IArticulo) {
105 const modalSinonimo = this.modalService.show(SinonimoComponent, { 105 const modalSinonimo = this.modalService.show(SinonimoComponent, {
106 initialState: { 106 initialState: {
107 sinonimos: sinonimosData, 107 sinonimos: sinonimosData,
108 articulo 108 articulo
109 }, 109 },
110 class: 'modal-promo modal-dialog-centered' 110 class: 'modal-promo modal-dialog-centered'
111 }); 111 });
112 modalSinonimo.content.onClose 112 modalSinonimo.content.onClose
113 .subscribe((res: any) => { 113 .subscribe((res: any) => {
114 for (const a of articulo.productos) { 114 for (const a of articulo.productos) {
115 for (const aRes of res.articulos) { 115 for (const aRes of res.articulos) {
116 if (a.idSinonimo === aRes.ID_SIN) { 116 if (a.idSinonimo === aRes.ID_SIN) {
117 a.CODA = aRes.CodArt; 117 a.CODA = aRes.CodArt;
118 a.CodArt = aRes.CodArt; 118 a.CodArt = aRes.CodArt;
119 a.SECA = aRes.CodSec; 119 a.SECA = aRes.CodSec;
120 aRes.CodSec = aRes.CodSec; 120 aRes.CodSec = aRes.CodSec;
121 a.PreVen = aRes.PreVen; 121 a.PreVen = aRes.PreVen;
122 a.id = aRes.id; 122 a.id = aRes.id;
123 a.DET_LAR = aRes.DET_LAR; 123 a.DET_LAR = aRes.DET_LAR;
124 a.DetArt = aRes.DetArt; 124 a.DetArt = aRes.DetArt;
125 } 125 }
126 } 126 }
127 } 127 }
128 this.articuloService.setArticulo(articulo); 128 this.articuloService.setArticulo(articulo);
129 }); 129 });
130 } 130 }
131 131
132 mediaPantalla() { 132 mediaPantalla() {
133 if ($('body').hasClass('media-pantalla')) { 133 if ($('body').hasClass('media-pantalla')) {
134 $('#headerPublicidad,#headerPad').addClass('media-pantalla'); 134 $('#headerPublicidad,#headerPad').addClass('media-pantalla');
135 } 135 }
136 } 136 }
137 } 137 }
138 138