Commit aefffbc780f571903ab18e48f9ed56b044630afe

Authored by Marcelo Puebla
1 parent 6b1addd043
Exists in master

Cambio en logica para personalizar un producto.

src/app/components/inicio/inicio.component.ts
... ... @@ -96,6 +96,7 @@ export class InicioComponent implements OnInit, AfterViewInit {
96 96 producto.cantidad = 1;
97 97 this.productoService.setProductos(producto);
98 98 this.productoService.productoAcargar = this.promoAcargar = this.productoAcargar = undefined;
  99 + this.productoService.esPromoPersonalizada = false;
99 100 this.promociones = [];
100 101 this.popoverDirective.hide();
101 102 }
... ... @@ -184,6 +185,7 @@ export class InicioComponent implements OnInit, AfterViewInit {
184 185  
185 186 if (this.sinonimos.length > 0) {
186 187 this.sinonimos = [];
  188 + this.productoService.esPromoPersonalizada = false;
187 189 this.popoverDirective.hide();
188 190 }
189 191  
src/app/components/popover-sinonimos/popover-sinonimos.component.html
... ... @@ -13,10 +13,17 @@
13 13 <div class="row mb-2" *ngFor="let sinonimo of popoverContent; let i = index">
14 14 <div class="col p-0">
15 15  
16   - <div class="row m-0">
  16 + <div class="row bg-white text-dark m-0 py-1 shadow">
17 17 <div class="col text-left">
18   - <p class="h5 card-title">
19   - Elija opción - Cantidad Restante {{cantidadRestanteSinonimos[i]}}
  18 + <p class="h5 m-0 card-title">
  19 + Elija opción -
  20 + <span [ngClass]="
  21 + {
  22 + 'text-success': cantidadRestanteSinonimos == 0,
  23 + 'text-danger': cantidadRestanteSinonimos > 0
  24 + }">
  25 + Cantidad Restante {{cantidadRestanteSinonimos}}
  26 + </span>
20 27 </p>
21 28 </div>
22 29 </div>
src/app/components/popover-sinonimos/popover-sinonimos.component.ts
... ... @@ -17,7 +17,7 @@ export class PopoverSinonimosComponent implements OnInit {
17 17 @Output() productosPersonalizados = new EventEmitter<Producto[]>();
18 18 // sinonimo: Sinonimo;
19 19  
20   - private cantidadRestanteSinonimos: number[] = [];
  20 + private cantidadRestanteSinonimos: number = 0;
21 21  
22 22 constructor(private productoService: ProductoService) { }
23 23  
... ... @@ -25,14 +25,13 @@ export class PopoverSinonimosComponent implements OnInit {
25 25  
26 26 this.popoverContent.forEach(sinonimo => {
27 27  
28   - this.cantidadRestanteSinonimos.push(0);
29   -
30 28 sinonimo.productos.forEach((producto, index) => {
31 29  
32   - if (producto.cantidad) {
33   - sinonimo.productos.splice(index, 1);
34   - sinonimo.productos.splice(0, 0, producto);
  30 + if (this.productoService.esPromoPersonalizada) {
  31 + producto.cantidad = producto.cantidad ? producto.cantidad : 0;
  32 + this.cantidadRestanteSinonimos = 0;
35 33 } else {
  34 + this.cantidadRestanteSinonimos += producto.cantidad ? producto.cantidad : 0;
36 35 producto.cantidad = 0;
37 36 }
38 37  
... ... @@ -43,10 +42,7 @@ export class PopoverSinonimosComponent implements OnInit {
43 42 continuar() {
44 43  
45 44 //Si aún quedan articulos que agregar no deja continuar.
46   - for (let i = 0; i < this.cantidadRestanteSinonimos.length; i++) {
47   -
48   - if (this.cantidadRestanteSinonimos[i] > 0) return;
49   - }
  45 + if (this.cantidadRestanteSinonimos > 0) return;
50 46  
51 47 var productosAenviar: Producto[] = [];
52 48  
... ... @@ -68,17 +64,17 @@ export class PopoverSinonimosComponent implements OnInit {
68 64  
69 65 sumarCantidad(producto: Producto, i: number) {
70 66  
71   - if (this.cantidadRestanteSinonimos[i] === 0) return;
  67 + if (this.cantidadRestanteSinonimos === 0) return;
72 68 producto.cantidad++;
73   - this.cantidadRestanteSinonimos[i]--;
  69 + this.cantidadRestanteSinonimos--;
74 70 }
75 71  
76 72 restarCantidad(producto: Producto, i: number) {
77 73  
78   - if (this.cantidadRestanteSinonimos[i] === this.popoverContent[i].cantidad) return;
  74 + if (this.cantidadRestanteSinonimos === this.popoverContent[i].cantidad) return;
79 75 if (producto.cantidad === 0) return;
80 76 producto.cantidad--;
81   - this.cantidadRestanteSinonimos[i]++;
  77 + this.cantidadRestanteSinonimos++;
82 78 }
83 79  
84 80 }
src/app/components/sidebar/sidebar.component.ts
... ... @@ -80,6 +80,7 @@ export class SidebarComponent implements OnInit {
80 80 personalizarPromo(producto: Producto, index) {
81 81  
82 82 this.productoService.productoAcargar = producto;
  83 + this.productoService.esPromoPersonalizada = true;
83 84 this.deleteProducto(producto, index);
84 85 this.router.navigate(['inicio']);
85 86 }
src/app/services/producto.service.ts
... ... @@ -13,6 +13,7 @@ export class ProductoService {
13 13 productoAcargar: Producto;
14 14 promoAcargar: Producto;
15 15 mostrar: string;
  16 + esPromoPersonalizada: boolean = false;
16 17  
17 18 constructor(private http: HttpClient) { }
18 19