Commit c2175985791cc73f56220a1d560a639846260eb5

Authored by Eric Fernandez
Exists in master

Merge branch 'master' of http://git.focasoftware.com/angular/autoservicio

src/app/components/comanda/comanda.component.html
1 <div class="container-fluid fade-in p-0"> 1 <div class="container-fluid fade-in p-0">
2
3 <div class="row m-2">
4 <div class="col-12">
5 <p class="m-0 h2 text-center">Pedidos a elaborar</p>
6 </div>
7 </div>
8
2 <div class="card-columns m-1 fade-in disable-user-select"> 9 <div class="card-columns m-1 fade-in disable-user-select">
3 <div 10 <div
4 *ngFor="let comanda of comandas" 11 *ngFor="let comanda of comandas"
5 class="card fade-in rounded-xs shadow-sm" 12 class="card fade-in rounded-xs shadow-sm"
6 [ngClass]="{ 13 [ngClass]="{
7 'bg-light': comanda.estado === 1, 14 'bg-light': comanda.estado === 1,
8 'bg-danger': comanda.estado === 2, 15 'bg-danger': comanda.estado === 2,
9 'bg-success swing-out-top-bck': comanda.estado === 3 16 'bg-success swing-out-top-bck': comanda.estado === 3
10 }"> 17 }">
11 <div class="card-body p-2"> 18 <div class="card-body p-2">
12 <p class="h5 card-title text-center mb-1">{{comanda.id.toString().slice(comanda.id.toString().length - 2)}}.</p> 19 <p class="h5 card-title text-center mb-1">{{comanda.id.toString().slice(comanda.id.toString().length - 2)}}.</p>
13 <!-- TODO: Implementar moment --> 20 <!-- TODO: Implementar moment -->
14 <p class="h5 card-title text-center mb-1">{{comanda.fechafinelaboracion | date: 'dd-MM-yyyy HH:mm' : '+0000'}}</p> 21 <p class="h5 card-title text-center mb-1">{{comanda.fechafinelaboracion | date: 'dd-MM-yyyy HH:mm' : '+0000'}}</p>
15 <p 22 <p
16 *ngFor="let detalle of comanda.detalles" 23 *ngFor="let detalle of comanda.detalles"
17 [ngClass]=" 24 [ngClass]="
18 { 25 {
19 'border-secondary': comanda.estado === 1, 26 'border-secondary': comanda.estado === 1,
20 'border-light': comanda.estado != 1 27 'border-light': comanda.estado != 1
21 }" 28 }"
22 class="card-text border-top pt-2 mb-2"> 29 class="card-text border-top pt-2 mb-2">
23 <small> 30 <small>
24 {{detalle.articulo.DET_LAR}} 31 {{detalle.articulo.DET_LAR}}
25 </small> 32 </small>
26 </p> 33 </p>
27 <button 34 <button
28 *ngIf="comanda.estado === 1" 35 *ngIf="comanda.estado === 1"
29 class="btn btn-block btn-danger shadow-sm" 36 class="btn btn-block btn-danger shadow-sm"
30 (click)="updateComanda(comanda, 2, 'En elaboracion')"> 37 (click)="updateComanda(comanda, 2, 'En elaboracion')">
31 Elaborar 38 Elaborar
32 </button> 39 </button>
33 <button 40 <button
34 *ngIf="comanda.estado === 2" 41 *ngIf="comanda.estado === 2"
35 class="btn btn-block btn-success shadow-sm" 42 class="btn btn-block btn-success shadow-sm"
36 (click)="updateComanda(comanda, 3, 'Terminado')"> 43 (click)="updateComanda(comanda, 3, 'Terminado')">
37 Terminado 44 Terminado
38 </button> 45 </button>
39 <button 46 <button
40 *ngIf="comanda.estado === 2" 47 *ngIf="comanda.estado === 2"
41 class="btn btn-block btn-light btn-sm shadow-sm p-0" 48 class="btn btn-block btn-light btn-sm shadow-sm p-0"
42 (click)="updateComanda(comanda, 1, 'Pagado')"> 49 (click)="updateComanda(comanda, 1, 'Pagado')">
43 <span class="pr-1 h6"><small>En espera</small></span> 50 <span class="pr-1 h6"><small>En espera</small></span>
44 <i class="fa fa-undo text-warning" aria-hidden="true"></i> 51 <i class="fa fa-undo text-warning" aria-hidden="true"></i>
45 </button> 52 </button>
46 </div> 53 </div>
47 </div> 54 </div>
48 </div> 55 </div>
49 </div> 56 </div>
50 57
src/app/components/confirmacion-carrito/confirmacion-carrito.component.html
1 <div 1 <div
2 *ngIf="!compraConEfectivofinalizada && !compraConQRfinalizada" 2 *ngIf="!compraConEfectivofinalizada && !compraConQRfinalizada"
3 class="row m-0 fade-in bg-primary-gradient disable-user-select" 3 class="row m-0 fade-in bg-primary-gradient disable-user-select"
4 (click)="reiniciarTimer"> 4 (click)="reiniciarTimer">
5 <div class="col-12 p-0 vh-100"> 5 <div class="col-12 p-0 vh-100">
6 <!-- TOP HEADER --> 6 <!-- TOP HEADER -->
7 <app-header></app-header> 7 <app-header></app-header>
8 8
9 <!-- NOMBRE DE SECCION --> 9 <!-- NOMBRE DE SECCION -->
10 <div class="row m-0"> 10 <div class="row m-0">
11 <div class="col-12 p-0"> 11 <div class="col-12 p-0">
12 <p class="h5 py-1 bg-gray text-muted text-center m-0"> 12 <p class="h5 py-1 bg-gray text-muted text-center m-0">
13 &nbsp; 13 &nbsp;
14 </p> 14 </p>
15 </div> 15 </div>
16 </div> 16 </div>
17 17
18 <div class="row m-0"> 18 <div class="row m-0">
19 <div class="col-10 px-1"> 19 <div class="col-10 px-1">
20 <!-- TEXTO DE IZQUIERDA --> 20 <!-- TEXTO DE IZQUIERDA -->
21 <div *ngIf="!verQR" class="row mx-2 mt-4 text-white"> 21 <div *ngIf="!verQR" class="row mx-2 mt-4 text-white">
22 <div class="col-sm-auto my-auto"> 22 <div class="col-sm-auto my-auto">
23 <p class="h2">Mi Compra 23 <p class="h2">Mi Compra
24 <i class="fa fa-shopping-cart "></i> 24 <i class="fa fa-shopping-cart "></i>
25 </p> 25 </p>
26 </div> 26 </div>
27 <div class="col-sm-9 my-auto"> 27 <div class="col-sm-9 my-auto">
28 <p class="h4">Por favor, controle y confirme su compra.</p> 28 <p class="h4">Por favor, controle y confirme su compra.</p>
29 </div> 29 </div>
30 </div> 30 </div>
31 31
32 <div [ngClass]="{'mt-5': verQR}" class="row m-0"> 32 <div [ngClass]="{'mt-5': verQR}" class="row m-0">
33 <!-- GRILLA DE PRODUCTOS DE MI COMPRA --> 33 <!-- GRILLA DE PRODUCTOS DE MI COMPRA -->
34 <div *ngIf="!verQR" class="col-sm-9 pr-1"> 34 <div *ngIf="!verQR" class="col-sm-9 pr-1">
35 <div class="row mx-1 pr-1 vh-70 overflow-scroll text-dark"> 35 <div class="row mx-1 pr-1 vh-70 overflow-scroll text-dark">
36 <div class="mh-100 col-4 p-2" *ngFor="let producto of productos"> 36 <div class="mh-100 col-4 p-2" *ngFor="let producto of productos">
37 <div class="row m-0 h-100 bg-white rounded-sm shadow border-0"> 37 <div class="row m-0 h-100 bg-white rounded-sm shadow border-0">
38 <div class="d-flex align-items-end flex-column"> 38 <div class="d-flex align-items-end flex-column">
39 <div class="w-100"> 39 <div class="w-100">
40 <img 40 <img
41 src="{{apiImagenes}}/imagenes/{{producto.imagenes[0].imagen}}" 41 src="{{apiImagenes}}/imagenes/{{producto.imagenes[0].imagen}}"
42 class="shadow rounded-sm w-100 m-auto"> 42 class="shadow rounded-sm w-100 m-auto">
43 </div> 43 </div>
44 <div class="w-100 pt-2 px-2"> 44 <div class="w-100 pt-2 px-2">
45 <p class="h6 text-left"> 45 <p class="h6 text-left">
46 <small class="font-weight-bold"> 46 <small class="font-weight-bold">
47 {{producto.DET_LAR}} 47 {{producto.DET_LAR}}
48 </small> 48 </small>
49 </p> 49 </p>
50 <div *ngIf="producto.tieneSinonimos"> 50 <div *ngIf="producto.tieneSinonimos">
51 <p *ngFor="let p of producto.productos" class="h6 text-left m-0"> 51 <p *ngFor="let p of producto.productos" class="h6 text-left m-0">
52 <small> 52 <small>
53 - {{p.cantidad * producto.cantidad}} {{p.DET_LAR}} 53 - {{p.cantidad * producto.cantidad}} {{p.DET_LAR}}
54 </small> 54 </small>
55 </p> 55 </p>
56 </div> 56 </div>
57 </div> 57 </div>
58 <div class="w-100 d-flex justify-content-between mt-auto mb-1 px-2"> 58 <div class="w-100 d-flex justify-content-between mt-auto mb-1 px-2">
59 <span class="text-left m-0 px-1 h6"> 59 <span class="text-left m-0 px-1 h6">
60 {{producto.cantidad}} x {{producto.PreVen | currency}} 60 {{producto.cantidad}} x {{producto.PreVen | currency}}
61 </span> 61 </span>
62 <span class="text-right m-0 px-1 h6"> 62 <span class="text-right m-0 px-1 h6">
63 {{producto.cantidad * producto.PreVen | currency}} 63 {{producto.cantidad * producto.PreVen | currency}}
64 </span> 64 </span>
65 </div> 65 </div>
66 </div> 66 </div>
67 </div> 67 </div>
68 </div> 68 </div>
69 </div> 69 </div>
70 </div> 70 </div>
71 71
72 <!-- CODIGO QR --> 72 <!-- CODIGO QR -->
73 <div *ngIf="verQR" class="col-sm-9"> 73 <div *ngIf="verQR" class="col-sm-9">
74 <div class="col-6 offset-3 border-0 mb-auto"> 74 <div class="col-6 offset-3 border-0 mb-auto">
75 <img 75 <img
76 src="{{apiImagenes}}/imagenes/qrmp.jpg" 76 src="{{apiImagenes}}/imagenes/qrmp.jpg"
77 class="w-100 mx-auto d-block shadow rounded-sm"> 77 class="w-100 mx-auto d-block shadow rounded-sm">
78 </div> 78 </div>
79 </div> 79 </div>
80 80
81 <!-- TICKET --> 81 <!-- TICKET -->
82 <div class="col-sm-3 px-1"> 82 <div class="col-sm-3 px-1">
83 <div class="card shadow"> 83 <div class="card shadow">
84 <div class="card-body"> 84 <div class="card-body">
85 <p class="h5 card-title">Su Ticket</p> 85 <p class="h5 card-title">Su Ticket</p>
86 <div class="row mt-4 m-0"> 86 <div class="row mt-4 m-0">
87 <div class="col-12 p-0 mb-2"> 87 <div class="col-12 p-0 mb-2">
88 <p class="h6 m-0 card-text text-left"> 88 <p class="h6 m-0 card-text text-left">
89 <small class="font-weight-bold">DESCRIPCIÓN</small> 89 <small class="font-weight-bold">DESCRIPCIÓN</small>
90 </p> 90 </p>
91 <p class="h6 m-0 card-text text-left"> 91 <p class="h6 m-0 card-text text-left">
92 <small class="font-weight-bold">CANTIDAD X PRECIO UNITARIO</small> 92 <small class="font-weight-bold">CANTIDAD X PRECIO UNITARIO</small>
93 </p> 93 </p>
94 </div> 94 </div>
95 </div> 95 </div>
96 <div class="row vh-50 px-2 overflow-scroll m-0"> 96 <div class="row vh-50 px-2 overflow-scroll m-0">
97 <div class="col-12 p-0 mb-2" *ngFor="let producto of productos"> 97 <div class="col-12 p-0 mb-2" *ngFor="let producto of productos">
98 <p class="h6 m-0 card-text text-left"> 98 <p class="h6 m-0 card-text text-left">
99 <small>{{producto.DET_LAR}}</small> 99 <small>{{producto.DET_LAR}}</small>
100 </p> 100 </p>
101 <div class="row d-flex justify-content-between m-0"> 101 <div class="row d-flex justify-content-between m-0">
102 <div class="col p-0"> 102 <div class="col p-0">
103 <p class="h6 m-0 card-text text-left"> 103 <p class="h6 m-0 card-text text-left">
104 <small>{{producto.cantidad}} x {{producto.PreVen | currency}}</small> 104 <small>{{producto.cantidad}} x {{producto.PreVen | currency}}</small>
105 </p> 105 </p>
106 </div> 106 </div>
107 <div class="col p-0"> 107 <div class="col p-0">
108 <p class="h6 m-0 card-text text-right"> 108 <p class="h6 m-0 card-text text-right">
109 <small>{{(producto.PreVen) * (producto.cantidad) | currency}}</small> 109 <small>{{(producto.PreVen) * (producto.cantidad) | currency}}</small>
110 </p> 110 </p>
111 </div> 111 </div>
112 </div> 112 </div>
113 </div> 113 </div>
114 </div> 114 </div>
115 <p class="h4 font-weight-bold card-text text-right mt-3 mb-0"> 115 <p class="h4 font-weight-bold card-text text-right mt-3 mb-0">
116 Total {{getTotal() | currency}} 116 Total {{getTotal() | currency}}
117 </p> 117 </p>
118 </div> 118 </div>
119 </div> 119 </div>
120 </div> 120 </div>
121 </div> 121 </div>
122 122
123 <!-- OPCIONES ABAJO DERECHA --> 123 <!-- OPCIONES ABAJO DERECHA -->
124 <div class="row m-0 fixed-bottom"> 124 <div class="row m-0 fixed-bottom">
125 <div class="col-sm-2 offset-sm-10 p-0 mt-auto"> 125 <div class="col-sm-2 offset-sm-10 p-0 mt-auto">
126 <div class="card m-2 rounded-top-sm mt-auto blue-gradient border-0"> 126 <div class="card m-2 rounded-top-sm mt-auto blue-gradient border-0">
127 <div class="card-body row m-0 p-1"> 127 <div class="card-body row m-0 p-1">
128 <div class="col-12 p-3"> 128 <div class="col-12 p-3">
129 <button 129 <button
130 type="button" 130 type="button"
131 class="btn btn-block btn-light shadow btn-sm shadow" 131 class="btn btn-block btn-light shadow btn-sm shadow"
132 (click)="volverPreviousPage()"> 132 (click)="volverPreviousPage()">
133 <span class="pr-2">Volver</span> 133 <span class="pr-2">Volver</span>
134 <i class="fa fa-undo text-warning"></i> 134 <i class="fa fa-undo text-warning"></i>
135 </button> 135 </button>
136 <button 136 <button
137 type="button" 137 type="button"
138 class="btn btn-block btn-light shadow btn-sm shadow" 138 class="btn btn-block btn-light shadow btn-sm shadow"
139 [routerLink]="['/cancelar-compra']"> 139 [routerLink]="['/cancelar-compra']">
140 <span class="pr-2">Cancelar</span> 140 <span class="pr-2">Cancelar</span>
141 <i class="fa fa-times text-danger"></i> 141 <i class="fa fa-times text-danger"></i>
142 </button> 142 </button>
143 </div> 143 </div>
144 </div> 144 </div>
145 </div> 145 </div>
146 </div> 146 </div>
147 </div> 147 </div>
148 </div> 148 </div>
149 149
150 <!-- FORMAS DE PAGO --> 150 <!-- FORMAS DE PAGO -->
151 <div *ngIf="!verQR" class="col-2 px-1"> 151 <div *ngIf="!verQR" class="col-2 px-1">
152 <p class="h4 text-white text-center mt-4 mx-2 pb-2 border-bottom border-white"> 152 <p class="h4 text-white text-center mt-4 mx-2 pb-2 border-bottom border-white">
153 Forma de pago 153 Forma de pago
154 </p> 154 </p>
155 155
156 <!-- EFECTIVO --> 156 <!-- EFECTIVO -->
157 <div 157 <div
158 class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white" 158 class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white"
159 (click)="pagar('efectivo')"> 159 (click)="pagar('efectivo')">
160 <div class="col-7 text-center my-auto py-3 px-2"> 160 <div class="col-7 text-center my-auto py-3 px-2">
161 <span class="h5">Efectivo</span> 161 <span class="h5">Efectivo</span>
162 </div> 162 </div>
163 <div class="col-5 my-auto p-0"> 163 <div class="col-5 my-auto p-0">
164 <img 164 <img
165 src="{{apiImagenes}}/imagenes/efectivo.png" 165 src="{{apiImagenes}}/imagenes/efectivo.png"
166 class="w-100 float-right"> 166 class="w-100 float-right">
167 </div> 167 </div>
168 </div> 168 </div>
169 169
170 <!-- TARJETA --> 170 <!-- TARJETA -->
171 <div class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white"> 171 <div class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white">
172 <div class="col-7 text-center my-auto py-3 px-2"> 172 <div class="col-7 text-center my-auto py-3 px-2">
173 <span class="h5">Tarjeta</span> 173 <span class="h5">Tarjeta</span>
174 </div> 174 </div>
175 <div class="col-5 my-auto p-0"> 175 <div class="col-5 my-auto p-0">
176 <img 176 <img
177 src="{{apiImagenes}}/imagenes/tarjeta.png" 177 src="{{apiImagenes}}/imagenes/tarjeta.png"
178 class="w-100 float-right"> 178 class="w-100 float-right">
179 </div> 179 </div>
180 </div> 180 </div>
181 181
182 <!-- QR --> 182 <!-- QR -->
183 <div 183 <div
184 class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white" 184 class="row card-effect mx-1 my-3 rounded-sm shadow-sm bg-white"
185 (click)="pagar('electronico')"> 185 (click)="pagar('electronico')">
186 <div class="col-7 text-center my-auto py-1 px-2"> 186 <div class="col-7 text-center my-auto py-1 px-2">
187 <span class="h5">Pago Electrónico</span> 187 <span class="h5">Pago Electrónico</span>
188 </div> 188 </div>
189 <div class="col-5 my-auto p-0"> 189 <div class="col-5 my-auto p-0">
190 <img 190 <img
191 src="{{apiImagenes}}/imagenes/qr.png" 191 src="{{apiImagenes}}/imagenes/qr.png"
192 class="w-100 float-right"> 192 class="w-100 float-right">
193 </div> 193 </div>
194 </div> 194 </div>
195 </div> 195 </div>
196 </div> 196 </div>
197 197
198 </div> 198 </div>
199 </div> 199 </div>
200 200
201 <div 201 <div
202 *ngIf="compraConQRfinalizada" 202 *ngIf="compraConQRfinalizada"
203 [routerLink]="['/mensaje-final']"
203 class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100"> 204 class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100">
204 <div class="col-12 text-center text-white my-auto"> 205 <div class="col-12 text-center text-white my-auto">
205 <p class="font-weight-bold display-4"> 206 <p class="font-weight-bold display-4">
206 Su pago fue<br> 207 Su pago fue<br>
207 acreditado 208 acreditado
208 exitosamente 209 exitosamente
209 </p> 210 </p>
210 <p class="font-weight-bold display-4">Recuerde retirar su ticket</p> 211 <p class="font-weight-bold display-4">Recuerde retirar su ticket</p>
211 </div> 212 </div>
212 <div class="row z-index-0 fixed-top m-0 w-100"> 213 <div class="row z-index-0 fixed-top m-0 w-100">
213 <div class="col-12 p-3"> 214 <div class="col-12 p-3">
214 <img class="w-15 float-right" src="../../../assets/img/debo-gray.png"> 215 <img class="w-15 float-right" src="../../../assets/img/debo-gray.png">
215 </div> 216 </div>
216 </div> 217 </div>
217 </div> 218 </div>
218 219
219 <div 220 <div
220 *ngIf="compraConEfectivofinalizada" 221 *ngIf="compraConEfectivofinalizada"
222 [routerLink]="['/mensaje-final']"
221 class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100"> 223 class="row m-0 fade-in bg-primary-gradient disable-user-select vh-100">
222 <div class="col-12 text-center text-white my-auto"> 224 <div class="col-12 text-center text-white my-auto">
223 <p class="font-weight-bold display-4"> 225 <p class="font-weight-bold display-4">
224 Retire su ticket<br> 226 Retire su ticket<br>
225 y diríjase a caja para<br> 227 y diríjase a caja para<br>
226 efectuar el pago. 228 efectuar el pago.
227 </p> 229 </p>
228 </div> 230 </div>
229 <div class="row z-index-0 fixed-top m-0 w-100"> 231 <div class="row z-index-0 fixed-top m-0 w-100">
230 <div class="col-12 p-3"> 232 <div class="col-12 p-3">
231 <img class="w-15 float-right" src="../../../assets/img/debo-gray.png"> 233 <img class="w-15 float-right" src="../../../assets/img/debo-gray.png">
232 </div> 234 </div>
233 </div> 235 </div>
234 </div> 236 </div>
235 237
src/app/components/confirmacion-carrito/confirmacion-carrito.component.ts
1 import { Component, OnInit, OnDestroy } from '@angular/core'; 1 import { Component, OnInit, OnDestroy } from '@angular/core';
2 import { appSettings } from 'src/etc/AppSettings'; 2 import { appSettings } from 'src/etc/AppSettings';
3 import { Location } from '@angular/common'; 3 import { Location } from '@angular/common';
4 import { ProductoService } from 'src/app/services/producto.service'; 4 import { ProductoService } from 'src/app/services/producto.service';
5 import { Producto } from 'src/app/wrappers/producto'; 5 import { Producto } from 'src/app/wrappers/producto';
6 import { Router } from '@angular/router'; 6 import { Router } from '@angular/router';
7 7
8 @Component({ 8 @Component({
9 selector: 'app-confirmacion-carrito', 9 selector: 'app-confirmacion-carrito',
10 templateUrl: './confirmacion-carrito.component.html', 10 templateUrl: './confirmacion-carrito.component.html',
11 styleUrls: ['./confirmacion-carrito.component.scss'] 11 styleUrls: ['./confirmacion-carrito.component.scss']
12 }) 12 })
13 export class ConfirmacionCarritoComponent implements OnInit, OnDestroy { 13 export class ConfirmacionCarritoComponent implements OnInit, OnDestroy {
14 14
15 private productos: Producto[] = []; 15 private productos: Producto[] = [];
16 private total: number = 0; 16 private total: number = 0;
17 private apiImagenes: string = appSettings.apiImagenes; 17 private apiImagenes: string = appSettings.apiImagenes;
18 private timerReposo: any; 18 private timerReposo: any;
19 private compraConEfectivofinalizada: boolean = false; 19 private compraConEfectivofinalizada: boolean = false;
20 private compraConQRfinalizada: boolean = false; 20 private compraConQRfinalizada: boolean = false;
21 private verQR: boolean = false; 21 private verQR: boolean = false;
22 22
23 constructor( 23 constructor(
24 private location: Location, 24 private location: Location,
25 private productoService: ProductoService, 25 private productoService: ProductoService,
26 private router: Router 26 private router: Router
27 ) { } 27 ) { }
28 28
29 ngOnInit() { 29 ngOnInit() {
30 30
31 this.timerReposo = setTimeout(() => { 31 this.timerReposo = setTimeout(() => {
32 32
33 this.router.navigate(['cancelar-compra']); 33 this.router.navigate(['cancelar-compra']);
34 }, 90000) 34 }, 90000)
35 this.productos = this.productoService.productos; 35 this.productos = this.productoService.productos;
36 } 36 }
37 37
38 ngOnDestroy() { 38 ngOnDestroy() {
39 39
40 clearTimeout(this.timerReposo); 40 clearTimeout(this.timerReposo);
41 } 41 }
42 42
43 volverPreviousPage() { 43 volverPreviousPage() {
44 44
45 if (this.verQR) { 45 if (this.verQR) {
46 this.verQR = !this.verQR; 46 this.verQR = !this.verQR;
47 return; 47 return;
48 } 48 }
49 this.location.back(); 49 this.location.back();
50 } 50 }
51 51
52 getTotal() { 52 getTotal() {
53 53
54 var subTotal = 0; 54 var subTotal = 0;
55 this.productos.forEach(producto => { 55 this.productos.forEach(producto => {
56 56
57 subTotal = subTotal + (producto.PreVen * producto.cantidad); 57 subTotal = subTotal + (producto.PreVen * producto.cantidad);
58 }); 58 });
59 return this.total = subTotal; 59 return this.total = subTotal;
60 } 60 }
61 61
62 reiniciarTimer() { 62 reiniciarTimer() {
63 63
64 clearTimeout(this.timerReposo); 64 clearTimeout(this.timerReposo);
65 this.timerReposo = setTimeout(() => { 65 this.timerReposo = setTimeout(() => {
66 66
67 this.router.navigate(['cancelar-compra']); 67 this.router.navigate(['cancelar-compra']);
68 }, 90000) 68 }, 90000)
69 } 69 }
70 70
71 //#region METODOS PARA LA FORMA DE PAGO 71 //#region METODOS PARA LA FORMA DE PAGO
72 pagoEfectivo() {
73
74 this.compraConEfectivofinalizada = true;
75 clearTimeout(this.timerReposo);
76 setTimeout(() => {
77
78 this.router.navigate(['mensaje-final']);
79 }, 3000);
80 }
81
82 pagar(medioPago: string) { 72 pagar(medioPago: string) {
83 73
84 if (medioPago == 'electronico') { 74 if (medioPago == 'electronico') {
85 75
86 this.verQR = true; 76 this.verQR = true;
87 } 77 }
88 78
89 this.productoService.pagar(medioPago) 79 this.productoService.pagar(medioPago)
90 .subscribe(() => { 80 .subscribe(() => {
91 81
92 clearTimeout(this.timerReposo); 82 clearTimeout(this.timerReposo);
93 83
94 if (medioPago == 'efectivo') { 84 if (medioPago == 'efectivo') {
95 85
96 this.compraConEfectivofinalizada = true; 86 this.compraConEfectivofinalizada = true;
97 } else if (medioPago == 'electronico') { 87 } else if (medioPago == 'electronico') {
98 88
99 this.compraConQRfinalizada = true; 89 this.compraConQRfinalizada = true;
100 } 90 }
101 91
102 setTimeout(() => { 92 setTimeout(() => {
103 93
104 this.router.navigate(['mensaje-final']); 94 this.router.navigate(['mensaje-final']);
105 }, 3000); 95 }, 15000);
106 }, err => { 96 }, err => {
107 console.log(err); 97 console.log(err);
108 alert('algo salió mal'); 98 alert('algo salió mal');
109 }) 99 })
110 } 100 }
111 //#endregion 101 //#endregion
112 102
113 } 103 }
114 104
src/app/components/popover-promos/popover-promos.component.html
1 <div class="card-body fade-left"> 1 <div class="card-body fade-left">
2 <div class="row"> 2 <div class="row">
3 <div class="col text-left"> 3 <div class="col text-left">
4 <p class="h5 card-title"> 4 <p class="h5 card-title">
5 Este producto forma parte<br> 5 Sugerencias<br>
6 de Combos y Promociones 6 COMBOS Y PROMOCIONES
7 </p> 7 </p>
8 </div> 8 </div>
9 </div> 9 </div>
10 10
11 <div class="overflow-scroll popover-size pr-2"> 11 <div class="overflow-scroll popover-size pr-2">
12 <div 12 <div
13 class="row my-2" 13 class="row my-2"
14 *ngFor="let promo of popoverContent"> 14 *ngFor="let promo of popoverContent">
15 <div class="col text-dark"> 15 <div class="col text-dark">
16 <div 16 <div
17 class="bg-white card-effect rounded-sm p-2 px-3" 17 class="bg-white card-effect rounded-sm p-2 px-3"
18 (click)="seleccionarPromo(promo)"> 18 (click)="seleccionarPromo(promo)">
19 <div class="row justify-content-between"> 19 <div class="row justify-content-between">
20 <div class="col-12 text-left"> 20 <div class="col-12 text-left">
21 <p class="h5 mb-0"> 21 <p class="h5 mb-0">
22 <small class="font-weight-bold">{{promo.DetArt}}</small> 22 <small class="font-weight-bold">{{promo.DetArt}}</small>
23 </p> 23 </p>
24 </div> 24 </div>
25 <div class="col-12 text-right mt-2"> 25 <div class="col-12 text-right mt-2">
26 <p class="h4 font-weight-bold mb-0"> 26 <p class="h4 font-weight-bold mb-0">
27 {{promo.PreVen | currency}} 27 {{promo.PreVen | currency}}
28 </p> 28 </p>
29 </div> 29 </div>
30 </div> 30 </div>
31 </div> 31 </div>
32 </div> 32 </div>
33 </div> 33 </div>
34 </div> 34 </div>
35 35
36 <div class="row mt-3 justify-content-end"> 36 <div class="row mt-3 justify-content-end">
37 <div class="col-auto"> 37 <div class="col-auto">
38 <button 38 <button
39 type="button" 39 type="button"
40 class="btn btn-sm btn-light shadow" 40 class="btn btn-sm btn-light shadow"
41 (click)="hide()"> 41 (click)="hide()">
42 <span class="pr-2">No, gracias</span> 42 <span class="pr-2">No, gracias</span>
43 <i class="fa fa-times text-danger" aria-hidden="true"></i> 43 <i class="fa fa-times text-danger" aria-hidden="true"></i>
44 </button> 44 </button>
45 </div> 45 </div>
46 </div> 46 </div>
47 47
48 </div> 48 </div>
49 49
src/assets/scss/bootstrap-override.scss
1 @import "../../../node_modules/bootstrap/scss/functions"; 1 @import "../../../node_modules/bootstrap/scss/functions";
2 @import "../../../node_modules/bootstrap/scss/variables"; 2 @import "../../../node_modules/bootstrap/scss/variables";
3 @import "../../../node_modules/bootstrap/scss/mixins"; 3 @import "../../../node_modules/bootstrap/scss/mixins";
4 4
5 $primary: #2872ae; 5 $primary: #2872ae;
6 6
7 $theme-colors: ( 7 $theme-colors: (
8 primary: $primary, 8 primary: $primary,
9 light: white 9 light: white
10 ); 10 );
11 11
12 .popover { 12 .popover {
13 transform: translate3d(-425px, 0, -34px) !important; 13 transform: translate3d(-100%, 0, -34px) !important;
14 min-width: 350px !important; 14 min-width: 350px !important;
15 max-width: 425px !important; 15 max-width: 65% !important;
16 border: none !important; 16 border: none !important;
17 border-radius: 1.5rem !important; 17 border-radius: 1.5rem !important;
18 padding: 0 !important; 18 padding: 0 !important;
19 background-color: $primary !important; 19 background-color: $primary !important;
20 .popover-body { 20 .popover-body {
21 padding: 0 !important; 21 padding: 0 !important;
22 } 22 }
23 } 23 }
24 24
25 .bs-popover-left .arrow::after, 25 .bs-popover-left .arrow::after,
26 .bs-popover-auto[x-placement^="left"] .arrow::after { 26 .bs-popover-auto[x-placement^="left"] .arrow::after {
27 border-left-color: $primary !important; 27 border-left-color: $primary !important;
28 } 28 }
29 29
30 .bs-popover-right .arrow::after, 30 .bs-popover-right .arrow::after,
31 .bs-popover-auto[x-placement^="right"] .arrow::after { 31 .bs-popover-auto[x-placement^="right"] .arrow::after {
32 border-right-color: $primary !important; 32 border-right-color: $primary !important;
33 } 33 }
34 34
35 .bs-popover-top .arrow::after, 35 .bs-popover-top .arrow::after,
36 .bs-popover-auto[x-placement^="top"] .arrow::after { 36 .bs-popover-auto[x-placement^="top"] .arrow::after {
37 border-top-color: $primary !important; 37 border-top-color: $primary !important;
38 } 38 }
39 39
40 .bs-popover-bottom .arrow::after, 40 .bs-popover-bottom .arrow::after,
41 .bs-popover-auto[x-placement^="bottom"] .arrow::after { 41 .bs-popover-auto[x-placement^="bottom"] .arrow::after {
42 border-bottom-color: $primary !important; 42 border-bottom-color: $primary !important;
43 } 43 }
44 44
45 .list-group-item.active { 45 .list-group-item.active {
46 background-color: $primary !important; 46 background-color: $primary !important;
47 border-color: $primary !important; 47 border-color: $primary !important;
48 } 48 }
49 49
50 .custom-radio .custom-control-label::before { 50 .custom-radio .custom-control-label::before {
51 background-color: $primary !important; 51 background-color: $primary !important;
52 border-color: $white !important; 52 border-color: $white !important;
53 border-width: 2px !important; 53 border-width: 2px !important;
54 } 54 }
55 55
56 .custom-control-input { 56 .custom-control-input {
57 border-color: $white !important; 57 border-color: $white !important;
58 background-color: $primary !important; 58 background-color: $primary !important;
59 color: $primary !important; 59 color: $primary !important;
60 &:checked ~ .custom-control-label::before { 60 &:checked ~ .custom-control-label::before {
61 border-color: $white !important; 61 border-color: $white !important;
62 color: #fff !important; 62 color: #fff !important;
63 background-color: $primary !important; 63 background-color: $primary !important;
64 } 64 }
65 &:focus ~ .custom-control-label::before { 65 &:focus ~ .custom-control-label::before {
66 border-color: $white !important; 66 border-color: $white !important;
67 box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.7) !important; 67 box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.7) !important;
68 } 68 }
69 } 69 }
70 70
71 .carousel-control { 71 .carousel-control {
72 visibility: hidden !important; 72 visibility: hidden !important;
73 } 73 }
74 74
75 .carousel, .carousel-inner, .item { 75 .carousel, .carousel-inner, .item {
76 height: 100% !important; 76 height: 100% !important;
77 &:focus{ 77 &:focus{
78 outline: none !important; 78 outline: none !important;
79 } 79 }
80 } 80 }
81 81
82 @import "../../../node_modules/bootstrap/scss/bootstrap"; 82 @import "../../../node_modules/bootstrap/scss/bootstrap";
83 83